mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2026-01-13 13:11:28 +01:00
172 lines
6.8 KiB
ObjectPascal
172 lines
6.8 KiB
ObjectPascal
(******************************************************************************
|
|
*
|
|
* 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",
|
|
// "john@host.com", 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.
|