Sent to observers of theProcess, an object within each process, after the task is terminated.
Takes P _OBLEXCEPTION, returns STATUS. Category: observer notification.
#define msgTaskTerminated MsgNoError (MakeMsg (clsObject, 112)) typedef struct OBJ_EXCEPTION {
OS_TASK_ERROR errorCode;
OS_TASK_ID task;
U32 spare;
OBJ_EXCEPTION, *P_OBJ_EXCEPTION;
msgScavenge
II
In: Type of exceptionII
In: Task that received the exceptionII
Unused (reserved)Sent to the object when a class has objCapScavenge set and the object's task is being terminated by request or because of an error.
Takes OS_TASK_ERROR, returns STATUS. Category: descendant responsibility.
#define msgScavenge MsgNoError(MakeMsg(clsObject, 102))
This message will only be executed by class that set objCapScavenge. Do not pass this message to your ancestor.
msgScavenged
Sent to the observers AFTER the object has been scavenged.
Takes OS_TASK_ERROR, returns STATUS. Category: observer notification.
#define msgScavenged MsgNoError(MakeMsg(clsObject, 104))
msgFreeSubTask
Sent to theProcess to free a sub task.
Takes P _SUBTASK_FREE, returns SfATUS.
#define msgFreeSubTask MsgNoError(MakeMsg(clsObject, 104)) typedef struct OBJ_SUBTASK_FREE
OS_TASK_ID task;
II
In: Task to be terminatedOS TASK ERROR exitCode;
II
In: Exit code for task termination OBJ_SUBTASK_FREE, * P_OBJ_SUBTASK_FREE;Useful for delayed termination when message is posted to theProcess.
stsOSlnvalidOperationForTask Task was not a subtask of this process.
msgHeap
Returns the preferred heap to use when allocating storage for this object.
Takes P_OS_HEAP_ID, returns STATUS.
#define msgHeap MakeMsg(clsObject, 96)
Message
Checks the object's capabilities.
Takes OBJ_CAPABILITY, returns STATUS.
#define msgCan MakeMsg(clsObject, 36) Enum32 (OBJ_CAPABILITY)
(
II
default for: OBJECT CLASSII
---} ;
objCapOwner flag1, objCapFree flag2, objCapSend flag3, objCapObservable flag4, objCapInherit flag6, objCapScavenge flag7, objCapCreate
=
flag8, objCapProp flag9, objCapMutate=
flag10, objCapCall=
flag1S, objCapCreateNotify=
flag16, objCapUnprotected=
flag17, objCapNonSwappable=
flag18II II
If the capabilities in the parameter are all enabled, msgCan returns stsOK otherwise stsProtection Violation is returned.
stsProtection Violation Capability disabled.
msgDisable
Disables some or all of the object's capabilities.
Takes P _OBLCAPABILITY_SET, returns STATUS.
#define msgDisable MakeMsg(clsObject, 16) typedef struct OBJ_CAPABILITY_SET
OBJ CAPABILITY cap;
II
In: Capabilities to enable/disable OBJ KEY key;II
In: Unlocks object, e.g., objWKNKey OBJ_CAPABILITY_SET,*
P_OBJ_CAPABILITY_SET;stsProtection Violation Key does not open the object.
msgEnable
Enables some or all of the object's capabilities.
Takes P _OBLCAPABILITY_SET, returns STATUS.
#define msgEnable MakeMsg(clsObject, 18) typedef struct OBJ_CAPABILITY_SET
OBJ CAPABILITY cap;
II
In: Capabilities to enable/disable OBJ KEY key;II
In: Unlocks object, e.g., objWKNKey OBJ_CAPABILITY_SET,*
P_OBJ_CAPABILITY_SET;stsProtection Violation Key does not open the object.
CLSMGR.H Messages
17
'8 PEN POINT API REFERENCE Part 1 I Class Manager
msglsA
Tests if the object's class inherits from the class.
Takes CLASS, returns STATUS.
fdefine msgIsA MakeMsg(clsObject, 30) stsOK Class is an ancestor of the object's class.
stsBadAncestor Class is not an ancestor of the object's class.
msgAncestorlsA
Tests if self inherits from the class.
Takes CLASS, returns STATUS.
fdefine msgAncestorIsA MakeMsg(clsObject, 32)
This is a clsClass message and can only be sent to a class. Consider using msglsA if the object is not a class.
stsO K Class parameter is an ancestor.
stsBadObject Class parameter is not an object.
stsBadAncestor Class parameter is not an ancestor.
msgClass
Passes back the class of the object.
Takes P _CLASS, returns SfATUS.
fdefine msgClass MakeMsg(clsObject, 34)
msgAncestor
Passes back the ancestor of the class.
Takes P_CLASS, returns SfATUS.
fdefine msgAncestor MakeMsg(clsObject, 20)
This is a clsClass message and can only be sent to a class. Consider using msgClass if the object is not a class.
msgSetLock
Sets or changes the key of the object.
Takes OBJ_LOCK_SET, returns STATUS.
fdefine msgSetLock MakeMsg(clsObject, 106) typedef struct OBJ_LOCK_SET
OBJ _ KEY oldKey i
OBJ KEY newKeYi OBJ_LOCK_SET,
*
P_OBJ_LOCK_SETiII In: Required to set lock II In: New key, if successful stsProtection Violation Old key does not open the object.
Return Value
Return Value
Return V(1lue
Message ArgumenTs
Return Value
msgUnlocks
Tests if a key will unlock the object.
Takes OBLKEY, returns STATUS.
fdefine msgUnlocks MakeMsg(clsObject, 38) stsProtection Violation Key does not open the object.
msgDuplicateLock
Locks the pArgs object with the same key as object.
Takes OBJECT, returns STATUS.
fdefine msgDuplicateLock MakeMsg(clsObject, 40) stsBadObject Parameter is not an object.
msgVersion
Returns the version of the object.
Takes pNull, returns STATUS.
fdefine msgVersion MakeMsg(clsObject, 82)
stsScopeViolation Object was dynamic, request is nonsense.
msg~evvJ\rgsSize
Returns the size of the new struct required to create an instance of this class.
Takes pNull, returns STATUS.
fdefine msgNewArgsSize MakeMsg(clsObject, 92) This is a clsClass message and can only be sent to a class.
msgOvvner
Passes back the task that owns this object.
Takes P_OS_TASK_ID, returns STATUS.
fdefine msgOwner MakeMsg(clsObject, 22)
msgSetOvvner
Changes the owner task.
Takes P_OBLOWNER, returns STATUS.
fdefine msgSetOwner MakeMsg(clsObject, 24) typedef struct OBJ_OWNER {
OS ·TASK ID task;
OBJECT object;
II In: [msgSetOwner] New owner
II Out: [msgObjectOwner] Current owner II In: [msgObjectOwner] Source object
CLSMGR.H Messages
OBJ KEY key; II In: [msgSetOwner] If required by caps OBJ_OWNER,
*
P_OBJ_OWNER;stsProtection Violation Key does not open the object.
'0
20 PENPOINT API REFERENCE
Passes back the value of a property for the object.
Takes P_OBLPROP, returns STATUS.
tdefine msgProp MakeMsg(clsObject, 108) typedef struct OBJ_PROP { OBJ_PROP,
*
P_OBJ_PROP;stsBadPropTag Tag value was not in the proper range.
msgSetProp
Sets a property on the object.
Takes P_OBJ_PROP, returns STATUS.
tdefine msgSetProp MakeMsg(clsObject, 110) typedef struct OBJ_PROP {
TAG propId;
P IDATA pData;
SIZEOF length;
OBJ KEY key;
OBJ_PROP,
*
P_OBJ_PROP;II
In: dsObject files any property that has tag flag 1 turned on. For example:tdefine MY_PROP MakeTagWithFlags(clsFoo,tagNum,l) stsBadPropTag Tag value was not in the proper range.
stsProtection Violation Key does not open the object.
,..,.. msgObiectXXX
. Arguments
These msgObjectXXX messages can be used with ObjectCallO to get information about all objects, regardless of their task. Functionally they are equivalent to msgXXX, when applicable.
msgObjectlsA
Using the object and the class in the pArgs. Tests if the object's class inherits from the class.
Takes P _OBJ_IS_A, returns STATUS.
tdefine msgObjectIsA MakeMsg(clsObject, 84) typedef struct OBJ IS A {
OBJECT - object;
II
In: Source objectCLASS objClass;
II
In: Ancestor of source object's class OBJ_IS_A,*
P_OBJ_IS_A;stsBadObject Parameter is not an object.
stsBadAncestor Class is not an ancestor of the object's class.
Arguments
Comments Return Value
Argunu:mts
Messoge Arguments
Return Yolue
Return VCllue
msgObjectAncestorlsA
Tests if the descendant class inherits from the ancestor.
Takes P _OBLANCESTOR_IS_A, returns STATUS.
tdefine msgObjectAncestorIsA MakeMsg(clsObject, 86) typedef struct OBJ_ANCESTOR_IS_A
CLASS descendant;
II
In: Source class (always a class) CLASS ancestor;II
In: Ancestor of the descendant OBJ_ANCESTOR_IS_A,*
P_OBJ_ANCESTOR_IS_A;This is a clsClass message and can only be sent to a class.
stsBadObject One of the parameters is not a class.
stsBadAncestor Ancestor parameter is not an ancestor.
msgObjectClass
Passes back the class for the object in pArgs.
Takes P _OBLCLASS, returns STATUS.
tdefine msgObjectClass MakeMsg(clsObject, 88) typedef struct OBJ_CLASS {
OBJECT object;
II
In: Source objectCLASS objClass;
II
Out: Class of source object OBJ_CLASS,*
P_OBJ_CLASS;stsBadObject Object or class parameters are not objects.
msgObject()~er
Passes back the owning task for the object in pArgs.
Takes P_OBLOWNER, returns STATUS.
tdefine msgObjectOwner MakeMsg(clsObject, 26) typedef struct OBJ_OWNER {
OS_TASK_ID task;
OBJECT object;
II
In: [msgSetOwner] New ownerII
Out: [msgObjectOwner] Current ownerII
In: [msgObjectOwner] Source objectCLSMGR.H Messages
OBJ_KEY key;
II
In: [msgSetOwner] If required by caps OBJ_OWNER,*
P_OBJ_OWNER;stsBadObject Parameter is not an object.