Application programming interface functions for supporting an improved message store for hand-held computers
First Claim
1. A method of communicating between an application process executing on a hand-held computer and a data manipulation process executing on the hand-held computer, the method comprising:
- issuing, by the application process, one of a plurality of commands corresponding to commands manipulating a flat folder structure having a plurality of call parameters comprising a current message context;
receiving, by the data manipulation process, the one of a plurality of commands issued by the application process and parsing the call to retrieve the call parameters; and
issuing, by the data manipulation process, one of a plurality of extended commands corresponding to the one of a plurality of commands received from the application processing having a plurality of call parameters comprising the current message context and an extended folder ID corresponding to a parsed folder ID.
2 Assignments
0 Petitions
Accused Products
Abstract
A set of APIs is used in creating and maintaining hierarchical folder structure for the storage of electronic messages in a hand-held computer. Such a folder structure permits the creation of a folder hierarchy for each message service with which the user has an account. As a result, the hand-held message store can organize messages received from different services. The APIs provide the functions necessary for an application process to access messages in the hierarchical folder structure. This set of APIs also provides backwards compatibility with APIs utilized to create and maintain a flat folder structure organization of the message store. This backward compatibility permits a hand-held computer embodying the present invention to be used to execute application processes that were developed to interact with an earlier generation flat folder structure.
-
Citations
72 Claims
-
1. A method of communicating between an application process executing on a hand-held computer and a data manipulation process executing on the hand-held computer, the method comprising:
-
issuing, by the application process, one of a plurality of commands corresponding to commands manipulating a flat folder structure having a plurality of call parameters comprising a current message context;
receiving, by the data manipulation process, the one of a plurality of commands issued by the application process and parsing the call to retrieve the call parameters; and
issuing, by the data manipulation process, one of a plurality of extended commands corresponding to the one of a plurality of commands received from the application processing having a plurality of call parameters comprising the current message context and an extended folder ID corresponding to a parsed folder ID. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
issuing, by the data manipulation process to the application process, one of a plurality of command acknowledgments having one or more acknowledgment parameters.
-
-
3. The method according to claim 2, wherein receiving one of a plurality of commands further comprises:
-
determining a folder ID parameter from the call parameters if the parsed folder ID parameter is less than 256, convert the folder ID parameter to create the extended folder ID; and
if the parsed folder ID parameter is greater than or equal to 256, set the extended folder ID to the folder ID parameter.
-
-
4. The method according to claim 3, wherein receiving one of a plurality of commands further comprises:
-
determining if the parsed folder ID parameter contains a special folder ID; and
if the parsed folder ID contains a special folder ID, determine a service name for the current message, determine the folder ID for the corresponding special folder within a hierarchy corresponding to that service name, and set the extended folder ID to the folder ID for the corresponding special folder within a hierarchy corresponding to that service name.
-
-
5. The method according to claim 4, wherein
the one of a plurality of commands issued by the application process comprises a MailPutFolder command having call parameters comprising the current message context, a folder ID, and a folder name, and having acknowledge parameters comprising a result code; the extended command corresponding to the MailPutFolder command is a MailPutFolderEx command having call parameters comprising the current message context, the extended folder ID, an extended parent folder ID, and a folder name size, and having acknowledge parameters comprising a result code.
-
6. The method according to claim 4, wherein
the one of a plurality of commands issued by the application process comprises a MailGetFolderName command having call parameters comprising the current message context, a folder ID, and a buffer length and having acknowledge parameters comprising a result code, a next used folder ID, and a folder identifier comprising either a folder name or a length of a buffer required to hold the folder name in question; the extended command corresponding to the MailGet FolderName command is a MailGetFolderNameEx command having call parameters comprising the current message context, the extended folder ID and a buffer length, and having acknowledge parameters comprising a result code and a folder identifier comprising either a folder name or a length of a buffer required to hold the folder name in question.
-
7. The method according to claim 4, wherein
the one of a plurality of commands issued by the application process comprises a MailGetFolderId command having call parameters comprising the current message context and a folder name, and having acknowledge parameters comprising a result code and a folder ID; the extended command corresponding to the MailGetFolderId command is a MailGetFolderIdEx command having call parameters comprising the current message context, the extended folder ID, an extended parent folder ID, and a folder name, and having acknowledge parameters comprising a result code and a folder ID.
-
8. The method according to claim 4, wherein
the one of a plurality of commands issued by the application process comprises a MailPut command having call parameters comprising the current message context and a mail message, and having acknowledge parameters comprising a result code; the extended command corresponding to the MailPut command is a MailPutEx command having call parameters comprising the current message context, the extended folder ID, and the mail message, and having acknowledge parameters comprising a result code.
-
9. The method according to claim 4, wherein
the one of a plurality of commands issued by the application process comprises a MailGet command having call parameters comprising the current message context and mail message database ID, and acknowledge parameters comprising a result code and a mail message; the extended command corresponding to the MailGet command is a MailGetEx command having call parameters comprising the current message context and a mail message database ID, and having acknowledge parameters comprising a mail message, an extended folder ID, and an extended target folder ID.
-
10. The method according to claim 4, wherein
the one of a plurality of commands issued by the application process comprises a MailGetSvcId command having call parameters comprising the current message context, a server message ID, and a service name, and acknowledge parameters comprising a result code, a mail message database ID, and mail message flags; the extended command corresponding to the MailGetSvcId command is a MailGetSvcIdEx command having call parameters comprising the current message context, a server message ID, and a service name, and having acknowledge parameters comprising a result code, a mail message database ID, a mail message database ID, and extended folder ID.
-
11. The method according to claim 4, wherein
the one of a plurality of commands issued by the application process comprises a MailFirst command having call parameters comprising the current message context and mail message flags, and acknowledge parameters comprising a result code and a mail message; the extended command corresponding to the MailFirst command is a MailFirstEx command having call parameters comprising the current message context and mail message flags, and having acknowledge parameters comprising a result code, a mail message, an extended folder ID and an extended target folder ID.
-
12. The method according to claim 4, wherein
the one of a plurality of commands issued by the application process comprises a MailNext command having call parameters comprising the current message context, and having acknowledge parameters comprising a result code and a mail message; the extended command corresponding to the MailNext command is a MailNextEx command having call parameters comprising the current message context, and having acknowledge parameters comprising a result code, a mail message, an extended folder ID and an extended target folder ID.
-
13. The method according to claim 4, wherein
the one of a plurality of commands issued by the application process comprises a MailUpdate command having call parameters comprising the current message context, a mail message, and update all fields indicator, and having acknowledge parameters comprising a result code; the extended command corresponding to the MailUpdate command is a MailUpdateEx command having call parameters comprising the current message context, the extended folder ID, an extended target folder ID, the mail message, and an update all fields indicator and having acknowledge parameters comprising a result code.
-
14. The method according to claim 2, wherein
the one of a plurality of commands issued by the application process comprises a MailOpenNotify command having call parameters comprising an allow directory/database creation indicator and a handle to receive notifications, and having acknowledge parameters comprising a result code and the current message context; the extended command corresponding to the MailOpenNotify command is a MailOpenNotifyEx command having call parameters comprising an allow directory/database creation indicator and a handle to receive notifications, and having acknowledge parameters comprising a result code and the current message context.
-
15. A computer-readable medium having computer-executable instructions for the method recited in claim 4.
-
16. A computer data signal embodied in a carrier wave readable by a computing system and encoding a computer program of instructions for executing a computer process performing the method recited in claim 4.
-
17. A method of communicating between an application process executing on a hand-held computer and an data manipulation process executing on the hand-held computer, the method comprising:
-
issuing, by the application process, one of a plurality of commands corresponding to commands manipulating a user-specified, hierarchical folder structure for use in storing electronic messages in a hand-held computer, the commands having a plurality of call parameters comprising a current message context;
receiving, by the data manipulation process, the one of a plurality of commands issued by the application.process and parsing the call to retrieve the call parameters; and
issuing, by the data manipulation process to the application process, one of a plurality of command acknowledgments having one or more acknowledgment parameters. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. An apparatus for manipulating and storing electronic messages received from a remote computer within a data store, the apparatus operating an messaging module within a hand-held computer, and said apparatus comprising:
-
a backward compatibility module executing standard commands being issued by the messaging module and having a plurality of parameter in a standard format, the backward compatibility module executes commands by converting the plurality of parameters from the standard format to an extended format and issuing a call to an extended command corresponding to the standard command being executed;
a message data manipulation module executing extended commands having a plurality of parameter in the extended comprising a current message context, a folder ID, and a extended folder ID corresponding to a parced folder ID, the message data manipulation module performs the functions of storing, manipulating, and retrieving messages in the data store. - View Dependent Claims (41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72)
determining the folder ID parameter from the call parameters;
if the parsed folder ID parameter is less than 256, convert the folder ID parameter to create the extended folder ID;
if the parsed folder ID parameter is greater than or equal to 256, set the extended folder ID to the folder ID parameter;
determining if the parsed folder ID parameter contains a special folder ID; and
if the parsed folder ID contains a special folder ID, determine a service name for the current message, determine the folder ID for the corresponding special folder within a hierarchy corresponding service name, and set the extended folder ID to the folder ID of the folder ID for the corresponding special folder within a hierarchy corresponding service name.
-
-
42. The apparatus according to claim 41, wherein the message data manipulation module further comprises:
-
a systems function module executing systems commands being issued by the messaging module requesting system administration functions be performed;
a retrieve info module executing retrieval commands issued by the messaging module requesting data items be retrieved from the data store;
a store info module executing store commands issued by the messaging module requesting data items be stored in the data store; and
a pointer module executing pointer commands issued by the messaging module requesting;
a folder pointer indicating a folder ID for a current folder being accessed; and
a message pointer indicating a message ID for a current message being accessed.
-
-
43. The apparatus according to claim 40, wherein the standard commands executed by the backward compatibility module comprise a MailPutFolder command having call parameters comprising the current message context, a folder ID, and a name, the extended command corresponding to the MailPutFolder command is a MailPutFolderEx command having call parameters comprising the current message context, the extended folder ID, an extended parent folder ID, and a folder name size, and having acknowledge parameters comprising a result code.
-
44. The apparatus according to claim 40, wherein the standard commands executed by the backward compatibility module comprise a MailGetFolderName command having call parameters comprising the current message context, a folder ID, a buffer length, and a namesize and having acknowledge parameters comprising a next used folderID and a number of characters with termination, the extended command corresponding to the MailGet FolderName command is a MailGetFolderNameEx command having call parameters comprising the current message context, the extended folder ID and a buffer length, and having acknowledge parameters comprising a result code and a folder identifier comprising either a folder name or a length of a buffer required to hold the folder name in question.
-
45. The apparatus according to claim 40, wherein the standard commands executed by the backward compatibility module comprise a MailGetFolderID command having call parameters comprising the current message context, a parent folder ID, and a folder name to match and having acknowledge parameters comprising a folderID, the extended command corresponding to the MailGet FolderID command is MailGetFolderIdEx command having call parameters comprising the current message context, the extended folder ID, an extended parent folder ID, and a folder name, and having acknowledge parameters comprising a result code and a folder ID.
-
46. The apparatus according to claim 40, wherein the standard commands executed by the backward compatibility module comprise a MailPut command having call parameters comprising the current message context and a data item, the extended command corresponding to the MailPut command is a MailPutEx command having call parameters comprising the current message context, the extended folder ID, and the mail message, and having acknowledge parameters comprising a result code.
-
47. The apparatus according to claim 40, wherein the standard commands executed by the backward compatibility module comprise a MailGet command having call parameters comprising the current message context and a message data item, the extended command corresponding to the MailGet command is a MailGetEx command having call parameters comprising the current message context and a mail message database ID, and having acknowledge parameters comprising a mail message, an extended folder ID, and an extended target folder ID.
-
48. The apparatus according to claim 40, wherein the standard commands executed by the backward compatibility module comprise a MailGetSvcID command having call parameters comprising the current message, a server message ID, and a service name, the extended command corresponding to the MailGetSvcID command is a MailGetSvcIdEx command having call parameters comprising the current message context, a server message ID, and a service name, and having acknowledge parameters comprising a result code, a mail message database ID, and extended folder ID.
-
49. The apparatus according to claim 40, wherein the standard commands executed by the backward compatibility module comprise a MailFirst command having call parameters comprising the current message context and a message data item, the extended command corresponding to the MailFirst command is a MailFirstEx command having call parameters comprising the current message context and mail message flags, and having acknowledge parameters comprising a result code, a mail message, an extended folder ID and an extended target folder ID.
-
50. The apparatus according to claim 40, wherein the standard commands executed by the backward compatibility module comprise a MailNext command having call parameters comprising the current message context and a message data iten, the extended command corresponding to the MailNext command is a MailNextEx command having call parameters comprising the current message context, and having acknowledge parameters comprising a result code, a mail message, an extended folder ID and an extended target folder ID.
-
51. The apparatus according to claim 40, wherein the standard commands executed by the backward compatibility module comprise a MailUpdate command having call parameters comprising the current message context, a message data item, and update all fields indicator, the extended command corresponding to the MailUpdate command is a MailUpdateEx command having call parameters comprising the current message context, the extended folder ID, an extended target folder ID, the mail message, and an update all fields indicator and having acknowledge parameters comprising a result code.
-
52. The apparatus according to claim 40, wherein the standard commands executed by the backward compatibility module comprise a MailOpenNotify command having call parameters comprising an allow director/database creation indicator and a handle to receive notifications and having acknowledge parameters comprising the current message context, the extended command corresponding to the MailOpenNotify command is a MailOpenNotifyEx command having call parameters comprising an allow directory/database creation indicator and a handle to receive notifications, and having acknowledge parameters comprising a result code and the current message context.
-
53. The apparatus according to claim 41, wherein the systems commands executed by the retrieval module comprise a MailOpenNotifyEx command having call parameters an allow directory/database creation indicator and a handle to receive notifications, and having acknowledge parameters comprising a result code and the current message context.
-
54. The apparatus according to claim 41, wherein the systems commands executed by the retrieval module comprise a MailFreeFolderInfo command having call parameters comprising the current message context and folder info data item to be freed, and having acknowledge parameters comprising a result code.
-
55. The apparatus according to claim 41, wherein the systems commands executed by the retrieval module comprise a MailFreeNotification command having call parameters comprising the current message context and a notification structure to be freed, and having acknowledge parameters comprising a result code.
-
56. The apparatus according to claim 41, wherein the retrieve commands executed by the retrieval module comprise a MailGetFolderNameEx command having call parameters comprising the current message context, the extended folder ID and a buffer length, and having acknowledge parameters comprising a result code and a folder identifier comprising either a folder name or a length of a buffer required to hold the folder name in question.
-
57. The apparatus according to claim 41, wherein the retrieve commands executed by the retrieval module comprise a MailGetFolderIdEx command having call parameters comprising the current message context, the extended folder ID and a buffer length, and having acknowledge parameters comprising a result code and a folder identifier comprising either a folder name or a length of a buffer required to hold the folder name in question.
-
58. The apparatus according to claim 41, wherein the retrieve commands executed by the retrieval module comprise a MailGetEx command having call parameters comprising the current message context and a mail message database ID, and having acknowledge parameters comprising a mail message, an extended folder ID, and an extended target folder ID.
-
59. The apparatus according to claim 41, wherein the retrieve commands executed by the retrieval module comprises a MailGetSvcIdEx command having call parameters comprising the current message context, a server message ID, and a service name, and having acknowledge parameters comprising a result code, a mail message database ID, a mail message database ID, and extended folder ID.
-
60. The apparatus according to claim 41, wherein the retrieve commands executed by the retrieval module comprise a MailUpdateEx command having call parameters comprising the current message context, the extended folder ID, an extended target folder ID, the mail message, and an update all fields indicator and having acknowledge parameters comprising a result code.
-
61. The apparatus according to claim 41, wherein the retrieve commands executed by the retrieval module comprise a MailGetFolderInfo command having call parameters comprising the current message context and a folder ID, and having acknowledge parameters comprising a result code and a folder info data item.
-
62. The apparatus according to claim 41, wherein the retrieve commands executed by the retrieval module comprise a MailGetSpecialFolderId command having call parameters comprising the current message context, a hierarchy folder ID, and an identify of the requested special folder, and having acknowledge parameters comprising a result code and a special folder.
-
63. The apparatus according to claim 41, wherein the retrieve commands executed by the retrieval module comprise a MailGetFolderIDFromSvcId command having call parameters comprising the current message context, a parent folder ID, and a service folder ID, and having acknowledge parameters comprising a result code and a folder ID.
-
64. The apparatus according to claim 41, wherein the store commands executed by the store module comprise a MailPutFolderEx command having call parameters comprising the current message context, the extended folder ID, an extended parent folder ID, and a folder name size, and having acknowledge parameters comprising a result code.
-
65. The apparatus according to claim 41, wherein the store commands executed by the store module comprise comprises a MailPutEx command having call parameters comprising the current message context, the extended folder ID, and the mail message, and having acknowledge parameters comprising a result code.
-
66. The apparatus according to claim 41, wherein the store commands executed by the store module comprise process a MailPutFolderInfo command having call parameters comprising the current message context, a folder ID, and a folder info data item, and having acknowledge parameters comprising a result code.
-
67. The apparatus according to claim 41, wherein the pointer commands executed by the pointer module comprise a MailFirstEx command having call parameters comprising the current message context and mail message flags, and having acknowledge parameters comprising a result code, a mail message, an extended folder ID and an extended target folder ID.
-
68. The apparatus according to claim 41, wherein the pointer commands executed by the pointer module comprise a MailNextEx command having call parameters comprising the current message context, and having acknowledge parameters comprising a result code, a mail message, an extended folder ID and an extended target folder ID.
-
69. The apparatus according to claim 41, wherein the pointer commands executed by the pointer module comprise a MailGetFirstSubFolder command having call parameters comprising the current message context and a folder ID, and having acknowledge parameters comprising a result code, a handle to a folder iterator, and a subfolder ID.
-
70. The apparatus according to claim 41, wherein the pointer commands executed by the pointer module comprise a MailGetNextSubFolder command having call parameters comprising the current message context and a handle to a folder iterator, and having acknowledge parameters comprising a result code and a subfolder ID.
-
71. The apparatus according to claim 41, wherein the pointer commands executed by the pointer module comprise a MailFreeIterator command having call parameters comprising the current message context and a handle to a folder iterator to be freed, and having acknowledge parameters comprising a result code.
-
72. The apparatus according to claim 41, wherein the pointer commands executed by the pointer module comprise a MailGetParent command having call parameters comprising the current message context, and a folder ID, and having acknowledge parameters comprising a parent folder ID.
Specification