MetaClass: 3.4 Exported Message Ranges: Standard GCN Messages

Up: GEOS SDK TechDocs | Up | Prev: 3.3 UI Messages | Next: 3.5 IACP Meta Messages

There are several standard messages which objects adding themselves to the appropriate GCN lists may receive and handle.

MSG_NOTIFY_FILE_CHANGE

@importMessage MetaGCNMessages, void 	MSG_NOTIFY_FILE_CHANGE(
        MemHandle 		data);

This notification is sent out whenever the file system changes in any way.

Source: GCN mechanism.

Destination: Object on the GCNSLT_FILE_SYSTEM GCN list.

Parameters: data Handle of a FileChangeNotificationData block.

Return: Nothing.

Structures:

  typedef struct {
	PathName			FCND_pathname;
	DiskHandle			FCND_diskHandle;
	FileChangeType			FCND_changeType;
} FileChangeNotificationData;
  typedef ByteEnum FileChangeType;
/* These flags may be combined using | and &:
	FCT_CREATE
	FCT_DELETE
	FCT_RENAME
	FCT_CONTENTS
	FCT_DISK_FORMAT */

MSG_NOTIFY_DRIVE_CHANGE

@importMessage MetaGCNMessages, void 	MSG_NOTIFY_DRIVE_CHANGE(
        GCNDriveChangeNotificationType 						type,
        word 						driveNum);

This is sent to notify various system utilities that a drive has been created or destroyed or has changed ownership from one installable file system driver to another.

Note that during system initialization, the ownership of a drive may change several times as more-specialized drivers are loaded. This means the recipient should not be surprised if it's told a drive has been created that it thought already existed.

Source: The kernel issues this notification whenever a filesystem driver creates or destroys a drive it manages. This includes when a specialized filesystem driver takes control of an existing drive.

Destination: Any object that has added itself to the GCNSLT_FILE_SYSTEM GCN list. It is intended for system objects, such as the GenFileSelector.

Parameters: type GCNDriveChangeNotificationType .

driveNum
Number of the affected drive.

Return: Nothing.

MSG_NOTIFY_APP_STARTED

@importMessage MetaGCNMessages, void 	MSG_NOTIFY_APP_STARTED();

This message is sent out when an application attaches to the UI.

Source: GCN Mechanism.

Destination: Any object on the GCNSLT_APPLICATION system GCN list.

Parameters: None.

Return: Nothing.

MSG_NOTIFY_APP_EXITED

@importMessage MetaGCNMessages, void 	MSG_NOTIFY_APP_EXITED();

This message is sent out when an application thread exits.

Source: GCN Mechanism.

Destination: Any object on the GCNSLT_APPLICATION system GCN list.

Parameters: None.

Return: Nothing.

MSG_NOTIFY_DATE_TIME_CHANGE

@importMessage MetaGCNMessages, void 	MSG_NOTIFY_DATE_TIME_CHANGE();

This message is sent out when the date or time changes--whenever the system comes back or the system time is altered (e.g. by the User in Preferences).

Source: GCN Mechanism.

Destination: Any object on the GCNSLT_DATE_TIME system GCN list.

Parameters: None.

Return: Nothing.

MSG_NOTIFY_USER_DICT_CHANGE

@importMessage MetaGCNMessages, void 	MSG_NOTIFY_USER_DICT_CHANGE(
        MemHandle 		sendingSpellBox,
        MemHandle 		userDictChanged);

This message is sent out when an application attaches to the UI.

Source: GCN Mechanism.

Destination: Any object on the GCNSLT_DICTIONARY system GCN list.

Parameters: sendingSpellBox Handle of SpellBox that sent out the notification.

userDictChanged
Handle of user dictionary that changed.

Return: Nothing.

MSG_NOTIFY_KEYBOARD_LAYOUT_CHANGE

@importMessage MetaGCNMessages, void 	MSG_NOTIFY_KEYBOARD_LAYOUT_CHANGE();

This message is sent out when the keyboard layout is changing. Usually this involves a change in status of the floating keyboard. When passing this event to GCNListSend() , you must be sure to pass the GCNLSF_FORCE_QUEUE flag. (Otherwise, if you have a GenPenInputControl running on the same thread, it may try to remove itself from the list while you are sending this message.)

Source: GCN Mechanism.

Destination: Any object on the GCNSLT_KEYBOARD_OBJECT system GCN list.

Parameters: None.

Return: Nothing.

MSG_NOTIFY_EXPRESS_MENU_CHANGE

@importMessage MetaGCNMessages, void 	MSG_NOTIFY_EXPRESS_MENU_CHANGE(
        GCNExpressMenuNotificationTypes 	type,
        optr 		affectedField);

This message is sent to notify various system utilities that an express menu has been created or destroyed. The recipient receives the optr of the field to which the affected express menu belongs, as all access to the express menu is via messages sent to the field.

Source: The UI issues this notification whenever a GenField object creates or destroys its express menu.

Destination: Any object that has added itself to the GCNSLT_EXPRESS_MENU. GCN list. It is intended for system utilities, such as the print spooler or a task-switching driver, that need to add objects to each express menu in the system.

Parameters: type What happened to the field.

affectedField
Which field of the menu was affected. (This will not be the optr of the express menu itself.)

Return: Nothing.

Structures:

  typedef enum {
	GCNEMNT_CREATED,
	GCNEMNT_DESTROYED
} GCNExpressMenuNotificationTypes;

MSG_PRINTER_INSTALLED_REMOVED

@importMessage MetaGCNMessages, void 	MSG_PRINTER_INSTALLED_REMOVED();

This message is sent whenever a printer is installed or removed. The recipient of this message might call SpoolGetNumPrinters() to determine if any printers or fax machines are currently installed.

Source: GCN Mechanism.

Destination: Any object on the GCNSLT_INSTALLED_PRINTERS system GCN list.

Parameters: None.

Return: Nothing.

MSG_META_CONFIRM_SHUTDOWN

@importMessage MetaGCNMessages, void 	MSG_META_CONFIRM_SHUTDOWN(
        GCNShutdownControlType 	type);

This message is sent out when the system is about to shut down.

All applications which need to keep the system from shutting down must add themselves to GCNSLT_SHUTDOWN_CONTROL and handle this message.

Source: The task switch mechanism, through GCN.

Destination: Any object on the GCNSLT_SHUTDOWN_CONTROL system GCN list.

Parameters: None.

Return: Nothing.

Interception: If the system is about to be suspended or shut down (if the passed GCNShutDownControlType is GCNSCT_SUSPEND or GCNSCT_SHUTDOWN), then any object receiving this message must call SysShutdown() , passing SST_CONFIRM_START before it puts up any dialog box it uses to ensure the user isn't doing something foolish. If SysShutdown() returns true (indicating something has already denied the shutdown request), the caller should not put up its confirmation box, nor need it call SysShutdown() again.
Once the object has received a response from the user, either affirmative or negative, it must call SysShutdown() , passing SST_CONFIRM_ACK or SST_CONFIRM_DENY as appropriate. This will allow any other confirmations to happen, as well as sending the final result to the original caller of SysShutdown() .
If the passed control type is GCNSCT_UNSUSPEND, no response is required.


Up: GEOS SDK TechDocs | Up | Prev: 3.3 UI Messages | Next: 3.5 IACP Meta Messages