/*
	File:		Notification.h

	Copyright:	© 1984-1993 by Apple Computer, Inc., all rights reserved.

	WARNING
	This file was auto generated by the interfacer tool. Modifications
	must be made to the master file.

*/

#ifndef __NOTIFICATION__
#define __NOTIFICATION__

#ifndef __TYPES__
#include <MacTypes.H>
#endif

#ifndef __OSUTILS__
#include <OSUtils.H>
#endif

#if PRAGMA_IMPORT
#pragma import on
#endif

#if PRAGMA_STRUCT_ALIGN
	#pragma options align=mac68k
#elif PRAGMA_STRUCT_PACKPUSH
	#pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
	#pragma pack(2)
#endif

enum  {
	nmType			= 8
};

typedef struct NMRec NMRec, *NMRecPtr;

typedef void (pascal *NMProcPtr)(NMRecPtr nmReqPtr);

enum {
	uppNMProcInfo = kPascalStackBased
		| STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NMRecPtr)))
};

#if USESROUTINEDESCRIPTORS
typedef UniversalProcPtr NMUPP;

#define CallNMProc(userRoutine, nmReqPtr)		\
		CallUniversalProc((UniversalProcPtr)(userRoutine), uppNMProcInfo, (nmReqPtr))
#define NewNMProc(userRoutine)		\
		(NMUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppNMProcInfo, GetCurrentISA())
#else
typedef NMProcPtr NMUPP;

#define CallNMProc(userRoutine, nmReqPtr)		\
		(*(userRoutine))((nmReqPtr))
#define NewNMProc(userRoutine)		\
		(NMUPP)(userRoutine)
#endif

struct NMRec {
	QElemPtr			qLink;			/*next queue entry*/
	short			qType;			/*queue type -- ORD(nmType) = 8*/
	short			nmFlags;			/*reserved*/
	long			nmPrivate;			/*reserved*/
	short			nmReserved;			/*reserved*/
	short			nmMark;			/*item to mark in Apple menu*/
	Handle			nmIcon;			/*handle to small icon*/
	Handle			nmSound;			/*handle to sound record*/
	StringPtr			nmStr;			/*string to appear in alert*/
	NMUPP			nmResp;			/*pointer to response routine*/
	long			nmRefCon;			/*for application use*/
};
#ifdef __cplusplus
extern "C" {
#endif

extern OSErr pascal NMInstall(NMRecPtr nmReqPtr);

extern OSErr pascal NMRemove(NMRecPtr nmReqPtr);
#if PRAGMA_STRUCT_ALIGN
	#pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
	#pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
	#pragma pack()
#endif

#ifdef PRAGMA_IMPORT_OFF
#pragma import off
#elif PRAGMA_IMPORT
#pragma import reset
#endif
#ifdef __cplusplus
}
#endif

#endif


