123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- (******************************************************************************
- *
- * Copyright (c) 2000 Palm, Inc. or its subsidiaries.
- * All rights reserved.
- *
- * File: Helper.h
- *
- * Release: Palm OS SDK 4.0 (63220)
- *
- * Description:
- * Public header file for the Helper API.
- *
- *****************************************************************************)
- unit helper;
- interface
- uses palmos;
- //------------------------------------------------------------------------
- // HelperNotifyEventType structure
- // This structure is passed as the notifyDetailsP field of SysNotifyParamType with
- // a sysNotifyHelperEvent notificatiom.
- //------------------------------------------------------------------------
- const
- kHelperNotifyCurrentVersion = 1;
- // Action codes for the sysNotifyHelperEvent broadcast (used in HelperNotifyEventType)
- type
- HelperNotifyActionCodeType = UInt16;
- const
- kHelperNotifyActionCodeEnumerate = HelperNotifyActionCodeType(1);
- kHelperNotifyActionCodeValidate = HelperNotifyActionCodeType(2);
- kHelperNotifyActionCodeExecute = HelperNotifyActionCodeType(3);
- type
- HelperNotifyEventTypeTag = record
- // Version - this definition is version 1
- // Later versions should include all the same fields as version 1
- // of HelperNotifyEventType plus additional fields
- version: UInt16;
- // what to do: enumerate, validate, or do it.
- actionCode: HelperNotifyActionCodeType;
- // data specific to the action code - valid if version = 1 for now
- case Integer of
- 1: (enumerateP: Pointer {^HelperNotifyEnumerateListTypeTag});
- 2: (validateP: Pointer {^HelperNotifyValidateTypeTag});
- 3: (executeP: Pointer {^HelperNotifyExecuteTypeTag});
- end;
- HelperNotifyEventType = HelperNotifyEventTypeTag;
- //------------------------------------------------------------------------
- // HelperNotifyEnumerateListType structure
- // An element in a linked list of helpers (used below)...
- //------------------------------------------------------------------------
- // In an helperNotifyActionCodeEnumerate response, this should be allocated
- // by the helper in the heap with MemPtrNew() and changed to be owned by the
- // system. It will be freed by the broadcaster. If a helper supports multiple
- // service classes, it should create multiple entries.
- //
- const
- kHelperAppMaxNameSize = 48; // max. helper name length, including zero-
- // terminator, expressed in # of bytes
- kHelperAppMaxActionNameSize = 32; // max. helper action name length, including
- // zero-terminator, expressed in # of
- // bytes
- type
- HelperNotifyEnumerateListTypeTag = record
- // Pointer to the next element in the list, or NULL to signal end of list.
- nextP: ^HelperNotifyEnumerateListType;
- // The name of the helper to show to the user (for example, when choosing
- // a default/preferred helper for a given class of service; zero-terminated
- // string).
- helperAppName: array [0..kHelperAppMaxNameSize-1] of Char;
- // Custom text that represents the action to be taken, such as "Dial",
- // "Send fax", etc. (for display in an action pop-up, or button, for example);
- // zero-terminated string.
- actionName: array [0..kHelperAppMaxActionNameSize-1] of Char;
- // The registered, unique ID of the helper (typically the helper app's
- // creator ID).
- helperAppID: UInt32;
- // Services class ID supported by the helper; for example:
- // helperServiceClassIDEMail (see HelperServiceClass.h)
- serviceClassID: UInt32;
- end;
- HelperNotifyEnumerateListType = HelperNotifyEnumerateListTypeTag;
- //------------------------------------------------------------------------
- // HelperNotifyValidateType structure
- // Data type for the helperNotifyActionCodeValidate event.
- //------------------------------------------------------------------------
- // The matching helper(s) must set the "handled" field of SysNotifyParamType
- // to true.
- HelperNotifyValidateTypeTag = record
- // IN: Service Class ID of requested service (required); for example:
- // helperServiceClassIDEMail (see HelperServiceClass.h)
- serviceClassID: UInt32;
- // IN: The unique ID of the Helper; may be 0 (zero) to indicate any
- // available helper of the specified service class;
- helperAppID: UInt32;
- end;
- HelperNotifyValidateType = HelperNotifyValidateTypeTag;
- //------------------------------------------------------------------------
- // Data type for the helperNotifyActionCodeExecute event
- //------------------------------------------------------------------------
- //
- // The target helper that processes the request must set the "handled" field
- // of SysNotifyParamType to true, even if a failure occurred during processing.
- // The 'err' field of the HelperNotifyExecuteType structure is used to indicate
- // success or failure.
- //
- // Helpers must check if the "handled" field in HelperNotifyEventType structure is
- // already set, and *not* process the "execute" request if so.
- //
- // The helper is responsible for informing user of any errors.
- //
- HelperNotifyExecuteTypeTag = record
- // IN: Service Class ID of requested service (required); for example:
- // helperServiceClassIDEMail (see HelperServiceClass.h)
- serviceClassID: UInt32;
- // IN: The unique ID of the Helper; may be 0 (zero) to indicate any
- // available helper of the specified service class;
- helperAppID: UInt32;
- // IN: Service-dependent data string, such as a phone number or email
- // address (see HelperServiceClass.h for data that is appropriate for
- // each of the "common" service classes); zero-terminated; will be
- // duplicated by helper if necessary (ex. "1-650-123-4567",
- // "[email protected]", etc.). Multiple fields may be separated by
- // semicolons (';').
- dataP: PChar;
- // IN: Description of data; zero-terminated; will be duplicated by helper
- // if necessary (ex. "John Doe"); this field is optional -- may be NULL.
- displayedName: PChar;
- // IN: Pointer to a service-specific extended details data structure or NULL.
- // This optional field is used for supplying additional arguments to the
- // helper. The type of each of these data structures is well-defined
- // and associated with a specific helper service class; will be duplicated
- // by helper if necessary; may be ignored by helper.
- detailsP: Pointer;
- // OUT: service-specific error code; must be initialize to 0 (zero) by host
- // before broadcasting this request. 0 is used to signal success (although
- // this may only be an indication that a request was scheduled and may
- // not be performed until an app switch takes place).
- err: Err;
- end;
- HelperNotifyExecuteType = HelperNotifyExecuteTypeTag;
- implementation
- end.
|