Thankyou and many thanks. is 'code 1' the code resource of the total compiled desk accessory or can the function (notif handler) be compiled seperatly and used instead. Also from this it would appear that the locked function needs to remain in either storage or dynamic heap after application close, until either unregistered or reset. Surley it would be more econimcal to supply an offset to the function from the start of the database thats passed, and for the notif manger to be responsible for locking the database during calls to the function? much appreciated regards Darren
--- On Sat, 27/9/08, Jan Slodicka <[EMAIL PROTECTED]> wrote: From: Jan Slodicka <[EMAIL PROTECTED]> Subject: Re: Notifications, help please To: "Palm Developer Forum" <[email protected]> Date: Saturday, 27 September, 2008, 10:25 PM Hi Darren, we use the code bellow. Just supply your definition for appFileCreator. The function (proc) is supposed to be in the 1st segment. Have a nice day. With best regards, Jan Slodicka Resco, Palm Division static int RegisterProcedureNotification( Boolean bRegister, UInt32 notifyType, SysNotifyProcPtr proc, void *data, Int8 priority) { LocalID dbID = FindDatabaseByTypeCreator('appl', appFileCreator) ; int err = dmErrCantFind ; if( dbID ) { DmOpenRef dbRef = DmOpenDBNoOverlay(0, dbID, dmModeReadOnly) ; if( dbRef ) { MemHandle h = DmGetResource('code',1) ; if( h ) { if( bRegister ) { MemHandleLock(h) ; err = DmDatabaseProtect(0, dbID, true) ; if( err == 0 ) { err = SysNotifyRegister(0, dbID, notifyType, proc, priority, data) ; if( err ) DmDatabaseProtect(0, dbID, false) ; } if( err ) MemHandleUnlock(h) ; } else { // Unprotect & Unlock only if we *really* were registered... err = SysNotifyUnregister(0, dbID, notifyType, priority) ; if( err == 0 ) { MemHandleUnlock(h) ; DmDatabaseProtect(0, dbID, false) ; } } DmReleaseResource(h) ; } DmCloseDatabase(dbRef) ; } } return err ; } ----- Original Message ----- From: Darren Barnes To: Palm Developer Forum Sent: Saturday, September 27, 2008 11:31 AM Subject: Notifications, help please Helloam using notifications :sysNotifySleepNotifyEventsysNotifyEarlyWakeupEventsysNotifyGotUsersAttentionto try and detect when the device is woken up using a keypress(user) or an alarm(system), so that the auto-off timer can be automaticaly set totimes that will conserve battery power.The notifications for sleep & wake are registered or unregistered depending ona selection made from a desk accessory, (this means passing a pointer to a functionfor the notifs handlers as there is no PilotMain in a desk accessory).The sysNotifyGotUsersAttention notif is registered in the sleep notif handler, so that if the device wakes with an alarm sysAutoOff can be set to a few secs.Anyway, the functions work well for the first alarm but on following alarms (if repeat alarms are set)it resets.Reading the SDK documention, there is advice there about locking a function pointer,how is this done ? Is the pointer that is passed to the sysNotifyRegister a pointer to an abosulte address inthe storage heap, or is it a pointer that is an offset from the start of the database thatspassed?Any help please, many thanks and regardsDarren -- For information on using the ACCESS Developer Forums, or to unsubscribe, please see http://www.access-company.com/developers/forums/ -- For information on using the ACCESS Developer Forums, or to unsubscribe, please see http://www.access-company.com/developers/forums/ -- For information on using the ACCESS Developer Forums, or to unsubscribe, please see http://www.access-company.com/developers/forums/
