type
    Requester_t = struct {
	*Requester_t r_OlderRequest;
	uint r_LeftEdge, r_TopEdge;
	uint r_Width, r_Height;
	uint r_RelLeft, r_RelTop;
	
	*Gadget_t r_ReqGadget;
	*Border_t r_ReqBorder;
	*IntuiText_t r_ReqText;
	uint r_Flags;
	
	ushort r_BackFill;
	*Layer_t r_ReqLayer;
	
	[32]byte r_ReqPad1;
	
	*BitMap_t r_ImageBMap;
	*Window_t r_RWindow;
	[36]byte r_ReqPad2;
    };

uint
    POINTREL	= 0x0001,
    PREDRAWN	= 0x0002,
    NOISYREQ	= 0x0004,

    REQOFFWINDOW= 0x1000,
    REQACTIVE	= 0x2000,
    SYSREQUEST	= 0x4000,
    DEFERREFRESH= 0x8000;

ulong
    ALERT_TYPE	    = 0x80000000,
    RECOVERY_ALERT  = 0x00000000,
    DEADEND_ALERT   = 0x80000000;

extern
    AutoRequest(*Window_t w; *IntuiText_t bodyText, positiveText, negativeText;
		ulong positiveFlags, negativeFlags; ulong width, height)bool,
    BuildSysRequest(*Window_t w;
		    *IntuiText_t bodyText, positiveText, negativeText;
		    ulong IDCMPFlags; ulong width, height)*Window_t,
    ClearDMRequest(*Window_t w)bool,
    DisplayAlert(ulong alertNumber; *char string; ulong height)bool,
    EndRequest(*Requester_t r; *Window_t w)void,
    FreeSysRequest(*Window_t w)void,
    InitRequester(*Requester_t r)void,
    Request(*Requester_t r; *Window_t w)bool,
    SetDMRequest(*Window_t w; *Requester_t DMRequester)void;
