pimstore.pp 68 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167
  1. {
  2. This file is part of the Free Pascal run time library.
  3. Copyright (c) 2008 Free Pascal development team.
  4. See the file COPYING.FPC, included in this distribution,
  5. for details about the copyright.
  6. This program is distributed in the hope that it will be useful,
  7. but WITHOUT ANY WARRANTY; without even the implied warranty of
  8. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  9. ********************************************************************** }
  10. //
  11. // Module: pimstore.h
  12. //
  13. //
  14. // Microsoft Windows Mobile 6.0 for PocketPC SDK.
  15. //
  16. {$IFNDEF FPC_DOTTEDUNITS}
  17. unit pimstore;
  18. {$ENDIF FPC_DOTTEDUNITS}
  19. {$MODE OBJFPC}
  20. interface
  21. {$IFDEF FPC_DOTTEDUNITS}
  22. uses WinApi.Windows, WinApi.Activex, WinceAPI.Windbase;
  23. {$ELSE FPC_DOTTEDUNITS}
  24. uses Windows, ActiveX, windbase;
  25. {$ENDIF FPC_DOTTEDUNITS}
  26. const
  27. // Flags for receiving notifications
  28. PIMFOLDERNOTIFICATION_REMOTE = $01; // Notification for changes from other processes
  29. PIMFOLDERNOTIFICATION_LOCAL = $02; // Notification for changes from this process
  30. PIMFOLDERNOTIFICATION_ALL = PIMFOLDERNOTIFICATION_REMOTE or PIMFOLDERNOTIFICATION_LOCAL;
  31. // Notification window messages for changes in the local process
  32. PIM_ITEM_CREATED_LOCAL = WM_APP + $0100;
  33. PIM_ITEM_DELETED_LOCAL = WM_APP + $0101;
  34. PIM_ITEM_CHANGED_LOCAL = WM_APP + $0102;
  35. PIM_ITEM_CREATED_REMOTE = WM_APP + $0105;
  36. PIM_ITEM_DELETED_REMOTE = WM_APP + $0106;
  37. PIM_ITEM_CHANGED_REMOTE = WM_APP + $0107;
  38. type
  39. PDATE = ^TDateTime;
  40. const
  41. LIBID_PocketOutlook:TIID = '{4E130E40-7DBE-11D2-8F23-0000F87A4335}';
  42. // Interfaces IDs.
  43. const
  44. IID_IException:TIID = '{B47398D0-3B73-11d2-8F1B-0000F87A4335}';
  45. IID_IExceptions:TIID = '{B47398D1-3B73-11d2-8F1B-0000F87A4335}';
  46. IID_ITimeZone:TIID = '{78B27290-5256-11d2-8F1B-0000F87A4335}';
  47. IID_IRecurrencePattern:TIID = '{38F47300-270F-11d2-8F18-0000F87A4335}';
  48. IID_IRecipient:TIID = '{7E136BE0-5240-11d2-8F1B-0000F87A4335}';
  49. IID_IPOlRecipient:TIID = '{A11C6E30-51B5-11d3-8F39-0000F87A4335}';
  50. IID_IRecipient2:TIID = '{13A73D92-C9CE-4904-A348-CBA3246F2F8C}';
  51. IID_IRecipients:TIID = '{76065AE0-2347-11d2-8F18-0000F87A4335}';
  52. IID_IPOutlookItemCollection:TIID = '{F06748C0-21A5-11d2-8F18-0000F87A4335}';
  53. IID_IPOlItems:TIID = '{6E3DBE90-5411-11d3-8F39-0000F87A4335}';
  54. IID_IContact:TIID = '{7F804E40-2010-11d2-8F18-0000F87A4335}';
  55. IID_ITask:TIID = '{37C78CE0-202C-11d2-8F18-0000F87A4335}';
  56. IID_IAppointment:TIID = '{5B43F691-202C-11d2-8F18-0000F87A4335}';
  57. IID_ICity:TIID = '{C83C5E90-3D1B-11d2-8F1B-0000F87A4335}';
  58. IID_IFolder:TIID = '{05058F20-20BE-11d2-8F18-0000F87A4335}';
  59. IID_IPOutlookApp:TIID = '{05058F22-20BE-11d2-8F18-0000F87A4335}';
  60. IID_IPOutlookApp2:TIID = '{AF7D0DC7-3D35-424b-AA60-27A38B8B629E}';
  61. IID_IItem:TIID = '{FB8998D0-38F0-4d12-AC56-4EC8FCE9F3D5}';
  62. IID_IPOlItems2:TIID = '{CB52F880-4CB0-4a23-AA09-82326C98929F}';
  63. IID_IPimSrcContactSummaryCard:TIID = '{95932f0a-e03a-412c-85ee-045365277e60}';
  64. IID_IPimSrcContactNew:TIID = '{FD76819E-4BDC-4e98-880C-15DED1FDA30D}';
  65. IID_IPimSrcContactListIcon:TIID = '{95932f0a-e03a-412c-85ee-045365277e62}';
  66. const
  67. CLSID_Exception:CLSID = '{b47398d2-3b73-11d2-8f1b-0000f87a4335}';
  68. CLSID_Exceptions:CLSID = '{b47398d3-3b73-11d2-8f1b-0000f87a4335}';
  69. CLSID_TimeZone:CLSID = '{78b27291-5256-11d2-8f1b-0000f87a4335}';
  70. CLSID_RecurrencePattern:CLSID = '{38f47301-270f-11d2-8f18-0000f87a4335}';
  71. CLSID_Recipient:CLSID = '{7e136be1-5240-11d2-8f1b-0000f87a4335}';
  72. CLSID_Recipients:CLSID = '{76065ae1-2347-11d2-8f18-0000f87a4335}';
  73. CLSID_Items:CLSID = '{f06748c1-21a5-11d2-8f18-0000f87a4335}';
  74. CLSID_ContactItem:CLSID = '{430539d0-2017-11d2-8f18-0000f87a4335}';
  75. CLSID_TaskItem:CLSID = '{5b43f690-202c-11d2-8f18-0000f87a4335}';
  76. CLSID_AppointmentItem:CLSID = '{5b43f692-202c-11d2-8f18-0000f87a4335}';
  77. CLSID_CityItem:CLSID = '{c83c5e91-3d1b-11d2-8f1b-0000f87a4335}';
  78. CLSID_Folder:CLSID = '{05058f21-20be-11d2-8f18-0000f87a4335}';
  79. CLSID_Application:CLSID = '{05058F23-20BE-11d2-8F18-0000F87A4335}';
  80. type
  81. // Forward declarations
  82. IAppointment = interface;
  83. IPOutlookApp = interface;
  84. IItem = interface;
  85. {****************************************
  86. * Generated header for interface: IException
  87. * at Mon Dec 07 11:02:04 1998
  88. * using MIDL 3.02.88
  89. ****************************************}
  90. // [dual][full][helpstring][uuid][object]
  91. IException = interface(IDispatch)
  92. ['{B47398D0-3B73-11d2-8F1B-0000F87A4335}']
  93. function get_AppointmentItem(out ppAppt:IAppointment):HRESULT; stdcall;
  94. function get_OriginalDate(_pdate:PDATE):HRESULT; stdcall;
  95. function get_Deleted(pfDeleted:PVariant):HRESULT; stdcall;
  96. function get_Application(out polApp:IPOutlookApp):HRESULT; stdcall;
  97. end;
  98. {****************************************
  99. * Generated header for interface: IExceptions
  100. * at Mon Dec 07 11:02:04 1998
  101. * using MIDL 3.02.88
  102. ****************************************}
  103. // [dual][full][helpstring][uuid][object]
  104. IExceptions = interface(IDispatch)
  105. ['{B47398D1-3B73-11d2-8F1B-0000F87A4335}']
  106. function Item(nIndex:longint; out ppExcept:IException):HRESULT; stdcall;
  107. function get_Count(pnCount:PLongint):HRESULT; stdcall;
  108. function get__NewEnum(out ppEnumerator:IUnknown):HRESULT; stdcall; // ppEnumerator is a reference to the IEnumVARIANT
  109. // interface for an enumerator object for the collection.
  110. function get_Application(out polApp:IPOutlookApp):HRESULT; stdcall;
  111. end;
  112. {****************************************
  113. * Generated header for interface: ITimeZone
  114. * at Mon Dec 07 11:02:04 1998
  115. * using MIDL 3.02.88
  116. ****************************************}
  117. // [dual][full][helpstring][uuid][object]
  118. ITimeZone = interface(IDispatch)
  119. ['{78B27290-5256-11d2-8F1B-0000F87A4335}']
  120. function get_Bias(plBias:LPLONG):HRESULT; stdcall;
  121. function get_SupportsDST(pfSupportsDST:PVARIANT_BOOL):HRESULT; stdcall;
  122. function get_IsStandardAbsoluteDate(pfAbsolute:PVARIANT_BOOL):HRESULT; stdcall;
  123. function get_IsDaylightAbsoluteDate(pfAbsolute:PVARIANT_BOOL):HRESULT; stdcall;
  124. function get_StandardBias(plBias:LPLONG):HRESULT; stdcall;
  125. function get_StandardName(out ppwsz:BSTR):HRESULT; stdcall;
  126. function get_StandardDate(_pDate:PDATE):HRESULT; stdcall;
  127. function get_StandardDayOfWeekMask(plMask:LPLONG):HRESULT; stdcall;
  128. function get_StandardInstance(plInstance:LPLONG):HRESULT; stdcall;
  129. function get_StandardMonthOfYear(plMonth:LPLONG):HRESULT; stdcall;
  130. function get_DaylightBias(plBias:LPLONG):HRESULT; stdcall;
  131. function get_DaylightName(out ppwsz:BSTR):HRESULT; stdcall;
  132. function get_DaylightDate(_pDate:PDATE):HRESULT; stdcall;
  133. function get_DaylightDayOfWeekMask(plMask:LPLONG):HRESULT; stdcall;
  134. function get_DaylightInstance(plInstance:LPLONG):HRESULT; stdcall;
  135. function get_DaylightMonthOfYear(plMonth:LPLONG):HRESULT; stdcall;
  136. function get_Application(out polApp:IPOutlookApp):HRESULT; stdcall;
  137. end;
  138. {****************************************
  139. * Generated header for interface: IRecurrencePattern
  140. * at Mon Dec 07 11:02:04 1998
  141. * using MIDL 3.02.88
  142. ****************************************}
  143. // [dual][full][helpstring][uuid][object]
  144. IRecurrencePattern = interface(IDispatch)
  145. ['{38F47300-270F-11d2-8F18-0000F87A4335}']
  146. function get_RecurrenceType(plRecType:LPLONG):HRESULT; stdcall;
  147. function get_PatternStartDate(pst:PDATE):HRESULT; stdcall;
  148. function get_StartTime(pst:PDATE):HRESULT; stdcall;
  149. function get_EndTime(pst:PDATE):HRESULT; stdcall;
  150. function get_PatternEndDate(pst:PDATE):HRESULT; stdcall;
  151. function get_NoEndDate(pfNoEndDate:PVARIANT_BOOL):HRESULT; stdcall;
  152. function get_Occurrences(plOccurrences:LPLONG):HRESULT; stdcall;
  153. function get_Interval(plInterval:LPLONG):HRESULT; stdcall;
  154. function get_DayOfWeekMask(plMask:LPLONG):HRESULT; stdcall;
  155. function get_DayOfMonth(plDay:LPLONG):HRESULT; stdcall;
  156. function get_Instance(plInstance:LPLONG):HRESULT; stdcall;
  157. function get_Duration(plDuration:LPLONG):HRESULT; stdcall;
  158. function get_MonthOfYear(plMask:LPLONG):HRESULT; stdcall;
  159. function put_RecurrenceType(lRecType:LONG):HRESULT; stdcall;
  160. function put_PatternStartDate(st:TDateTime):HRESULT; stdcall;
  161. function put_StartTime(st:TDateTime):HRESULT; stdcall;
  162. function put_EndTime(st:TDateTime):HRESULT; stdcall;
  163. function put_PatternEndDate(st:TDateTime):HRESULT; stdcall;
  164. function put_NoEndDate(fNoEndDate:VARIANT_BOOL):HRESULT; stdcall;
  165. function put_Occurrences(lOccurrences:LONG):HRESULT; stdcall;
  166. function put_Interval(lInterval:LONG):HRESULT; stdcall;
  167. function put_DayOfWeekMask(lMask:LONG):HRESULT; stdcall;
  168. function put_DayOfMonth(lDay:LONG):HRESULT; stdcall;
  169. function put_Instance(lInstance:LONG):HRESULT; stdcall;
  170. function put_Duration(lDuration:LONG):HRESULT; stdcall;
  171. function put_MonthOfYear(lMask:LONG):HRESULT; stdcall;
  172. function get_Exceptions(out ppExceptions:IExceptions):HRESULT; stdcall;
  173. function get_Application(out polApp:IPOutlookApp):HRESULT; stdcall;
  174. function GetOccurrence(_date:TDateTime; out ppAppt:IAppointment):HRESULT; stdcall;
  175. end;
  176. {****************************************
  177. * Generated header for interface: IRecipient
  178. * at Mon Dec 07 11:02:04 1998
  179. * using MIDL 3.02.88
  180. ****************************************}
  181. // [dual][full][helpstring][uuid][object]
  182. IRecipient = interface(IDispatch)
  183. ['{7E136BE0-5240-11d2-8F1B-0000F87A4335}']
  184. function put_Address(pwsz:BSTR):HRESULT; stdcall;
  185. function get_Address(out ppwsz:BSTR):HRESULT; stdcall;
  186. function get_Name(out ppwsz:BSTR):HRESULT; stdcall;
  187. function get_Application(out polApp:IPOutlookApp):HRESULT; stdcall;
  188. end;
  189. {****************************************
  190. * Generated header for interface: IPOlRecipient
  191. * at Fri Aug 13 12:48:03 1999
  192. * using MIDL 3.02.88
  193. ****************************************}
  194. // [dual][full][helpstring][uuid][object]
  195. IPOlRecipient = interface(IRecipient)
  196. ['{A11C6E30-51B5-11d3-8F39-0000F87A4335}']
  197. function Resolve(fShowDialog:VARIANT_BOOL; pfResolved:PVARIANT_BOOL):HRESULT; stdcall;
  198. end;
  199. // Recipient types
  200. OlRecipientType = (olRecipientTypeUnknown := 0,
  201. olRecipientTypeRequired := 1,
  202. olRecipientTypeOptional := 2,
  203. olRecipientTypeResource := 3);
  204. // Recipient status
  205. OlRecipientStatus = (olRecipientStatusUnknown := 0,
  206. olRecipientStatusAccepted := 1,
  207. olRecipientStatusDeclined := 2,
  208. olRecipientStatusTentative := 3,
  209. olRecipientStatusNoResponse := 4);
  210. IRecipient2 = interface(IPOlRecipient)
  211. ['{13A73D92-C9CE-4904-A348-CBA3246F2F8C}']
  212. function put_Type(rtType:OlRecipientType):HRESULT; stdcall;
  213. function put_Status(rsStatus:OlRecipientStatus):HRESULT; stdcall;
  214. function get_Type(out prtType:OlRecipientType):HRESULT; stdcall;
  215. function get_Status(out prsStatus:OlRecipientStatus):HRESULT; stdcall;
  216. end;
  217. {****************************************
  218. * Generated header for interface: IRecipients
  219. * at Mon Dec 07 11:02:04 1998
  220. * using MIDL 3.02.88
  221. ****************************************}
  222. // [dual][full][helpstring][uuid][object]
  223. IRecipients = interface(IDispatch)
  224. ['{76065AE0-2347-11d2-8F18-0000F87A4335}']
  225. function Add(pwszName:BSTR; out pRecip:IRecipient):HRESULT; stdcall;
  226. function Item(iIndex:longint; out pRecip:IRecipient):HRESULT; stdcall;
  227. function Remove(iIndex:longint):HRESULT; stdcall;
  228. function get_Count(pnCount:PLongint):HRESULT; stdcall;
  229. function get__NewEnum(out ppEnumerator:IUnknown):HRESULT; stdcall;
  230. function get_Application(out polApp:IPOutlookApp):HRESULT; stdcall;
  231. end;
  232. {****************************************
  233. * Generated header for interface: IPOutlookItemCollection
  234. * at Mon Dec 07 11:02:04 1998
  235. * using MIDL 3.02.88
  236. ****************************************}
  237. // [dual][full][helpstring][uuid][object]
  238. IPOutlookItemCollection = interface(IDispatch)
  239. ['{F06748C0-21A5-11d2-8F18-0000F87A4335}']
  240. function Add(out ppolItem:IDispatch):HRESULT; stdcall;
  241. function get_Count(pnCount:PLongint):HRESULT; stdcall;
  242. function Find(pwszRestriction:BSTR; out ppItem:IDispatch):HRESULT; stdcall;
  243. function FindNext(out ppItem:IDispatch):HRESULT; stdcall;
  244. function Item(iIndex:longint; out ppolItem:IDispatch):HRESULT; stdcall;
  245. function Remove(iIndex:longint):HRESULT; stdcall;
  246. function Restrict(pwszRestriction:BSTR; out ppolItems:IPOutlookItemCollection):HRESULT; stdcall;
  247. function Sort(pwszProperty:BSTR; fDescending:VARIANT_BOOL):HRESULT; stdcall;
  248. function get_IncludeRecurrences(pfIncludeRecurrences:PVARIANT_BOOL):HRESULT; stdcall;
  249. function put_IncludeRecurrences(pfIncludeRecurrences:VARIANT_BOOL):HRESULT; stdcall;
  250. function get__NewEnum(out ppEnumerator:IUnknown):HRESULT; stdcall;
  251. function get_Application(out polApp:IPOutlookApp):HRESULT; stdcall;
  252. end;
  253. {****************************************
  254. * Generated header for interface: IPOlItems
  255. * at Mon Aug 16 12:34:34 1999
  256. * using MIDL 3.02.88
  257. ****************************************}
  258. // [dual][full][helpstring][uuid][object]
  259. IPOlItems = interface(IPOutlookItemCollection)
  260. ['{6E3DBE90-5411-11d3-8F39-0000F87A4335}']
  261. function SetColumns(Columns:BSTR):HRESULT; stdcall;
  262. end;
  263. {****************************************
  264. * Generated header for interface: IContact
  265. * at Mon Dec 07 11:02:04 1998
  266. * using MIDL 3.02.88
  267. ****************************************}
  268. // [dual][full][helpstring][uuid][object]
  269. IContact = interface(IDispatch)
  270. ['{7F804E40-2010-11d2-8F18-0000F87A4335}']
  271. function get_Birthday(pst:PDATE):HRESULT; stdcall;
  272. function get_Anniversary(pst:PDATE):HRESULT; stdcall;
  273. function get_BusinessFaxNumber(out ppwsz:BSTR):HRESULT; stdcall;
  274. function get_CompanyName(out ppwsz:BSTR):HRESULT; stdcall;
  275. function get_Department(out ppwsz:BSTR):HRESULT; stdcall;
  276. function get_Email1Address(out ppwsz:BSTR):HRESULT; stdcall;
  277. function get_MobileTelephoneNumber(out ppwsz:BSTR):HRESULT; stdcall;
  278. function get_OfficeLocation(out ppwsz:BSTR):HRESULT; stdcall;
  279. function get_PagerNumber(out ppwsz:BSTR):HRESULT; stdcall;
  280. function get_BusinessTelephoneNumber(out ppwsz:BSTR):HRESULT; stdcall;
  281. function get_JobTitle(out ppwsz:BSTR):HRESULT; stdcall;
  282. function get_HomeTelephoneNumber(out ppwsz:BSTR):HRESULT; stdcall;
  283. function get_Email2Address(out ppwsz:BSTR):HRESULT; stdcall;
  284. function get_Spouse(out ppwsz:BSTR):HRESULT; stdcall;
  285. function get_Email3Address(out ppwsz:BSTR):HRESULT; stdcall;
  286. function get_Home2TelephoneNumber(out ppwsz:BSTR):HRESULT; stdcall;
  287. function get_HomeFaxNumber(out ppwsz:BSTR):HRESULT; stdcall;
  288. function get_CarTelephoneNumber(out ppwsz:BSTR):HRESULT; stdcall;
  289. function get_AssistantName(out ppwsz:BSTR):HRESULT; stdcall;
  290. function get_AssistantTelephoneNumber(out ppwsz:BSTR):HRESULT; stdcall;
  291. function get_Children(out ppwsz:BSTR):HRESULT; stdcall;
  292. function get_Categories(out ppwsz:BSTR):HRESULT; stdcall;
  293. function get_WebPage(out ppwsz:BSTR):HRESULT; stdcall;
  294. function get_Business2TelephoneNumber(out ppwsz:BSTR):HRESULT; stdcall;
  295. function get_Title(out ppwsz:BSTR):HRESULT; stdcall;
  296. function get_FirstName(out ppwsz:BSTR):HRESULT; stdcall;
  297. function get_MiddleName(out ppwsz:BSTR):HRESULT; stdcall;
  298. function get_LastName(out ppwsz:BSTR):HRESULT; stdcall;
  299. function get_Suffix(out ppwsz:BSTR):HRESULT; stdcall;
  300. function get_HomeAddressStreet(out ppwsz:BSTR):HRESULT; stdcall;
  301. function get_HomeAddressCity(out ppwsz:BSTR):HRESULT; stdcall;
  302. function get_HomeAddressState(out ppwsz:BSTR):HRESULT; stdcall;
  303. function get_HomeAddressPostalCode(out ppwsz:BSTR):HRESULT; stdcall;
  304. function get_HomeAddressCountry(out ppwsz:BSTR):HRESULT; stdcall;
  305. function get_OtherAddressStreet(out ppwsz:BSTR):HRESULT; stdcall;
  306. function get_OtherAddressCity(out ppwsz:BSTR):HRESULT; stdcall;
  307. function get_OtherAddressState(out ppwsz:BSTR):HRESULT; stdcall;
  308. function get_OtherAddressPostalCode(out ppwsz:BSTR):HRESULT; stdcall;
  309. function get_OtherAddressCountry(out ppwsz:BSTR):HRESULT; stdcall;
  310. function get_BusinessAddressStreet(out ppwsz:BSTR):HRESULT; stdcall;
  311. function get_BusinessAddressCity(out ppwsz:BSTR):HRESULT; stdcall;
  312. function get_BusinessAddressState(out ppwsz:BSTR):HRESULT; stdcall;
  313. function get_BusinessAddressPostalCode(out ppwsz:BSTR):HRESULT; stdcall;
  314. function get_BusinessAddressCountry(out ppwsz:BSTR):HRESULT; stdcall;
  315. function get_RadioTelephoneNumber(out ppwsz:BSTR):HRESULT; stdcall;
  316. function get_FileAs(out ppwsz:BSTR):HRESULT; stdcall;
  317. function get_Body(out ppwsz:BSTR):HRESULT; stdcall;
  318. function get_YomiCompanyName(out ppwsz:BSTR):HRESULT; stdcall;
  319. function get_YomiFirstName(out ppwsz:BSTR):HRESULT; stdcall;
  320. function get_YomiLastName(out ppwsz:BSTR):HRESULT; stdcall;
  321. function put_Birthday(st:TDateTime):HRESULT; stdcall;
  322. function put_Anniversary(st:TDateTime):HRESULT; stdcall;
  323. function put_BusinessFaxNumber(pwsz:BSTR):HRESULT; stdcall;
  324. function put_CompanyName(pwsz:BSTR):HRESULT; stdcall;
  325. function put_Department(pwsz:BSTR):HRESULT; stdcall;
  326. function put_Email1Address(pwsz:BSTR):HRESULT; stdcall;
  327. function put_MobileTelephoneNumber(pwsz:BSTR):HRESULT; stdcall;
  328. function put_OfficeLocation(pwsz:BSTR):HRESULT; stdcall;
  329. function put_PagerNumber(pwsz:BSTR):HRESULT; stdcall;
  330. function put_BusinessTelephoneNumber(pwsz:BSTR):HRESULT; stdcall;
  331. function put_JobTitle(pwsz:BSTR):HRESULT; stdcall;
  332. function put_HomeTelephoneNumber(pwsz:BSTR):HRESULT; stdcall;
  333. function put_Email2Address(pwsz:BSTR):HRESULT; stdcall;
  334. function put_Spouse(pwsz:BSTR):HRESULT; stdcall;
  335. function put_Email3Address(pwsz:BSTR):HRESULT; stdcall;
  336. function put_Home2TelephoneNumber(pwsz:BSTR):HRESULT; stdcall;
  337. function put_HomeFaxNumber(pwsz:BSTR):HRESULT; stdcall;
  338. function put_CarTelephoneNumber(pwsz:BSTR):HRESULT; stdcall;
  339. function put_AssistantName(pwsz:BSTR):HRESULT; stdcall;
  340. function put_AssistantTelephoneNumber(pwsz:BSTR):HRESULT; stdcall;
  341. function put_Children(pwsz:BSTR):HRESULT; stdcall;
  342. function put_Categories(pwsz:BSTR):HRESULT; stdcall;
  343. function put_WebPage(pwsz:BSTR):HRESULT; stdcall;
  344. function put_Business2TelephoneNumber(pwsz:BSTR):HRESULT; stdcall;
  345. function put_Title(pwsz:BSTR):HRESULT; stdcall;
  346. function put_FirstName(pwsz:BSTR):HRESULT; stdcall;
  347. function put_MiddleName(pwsz:BSTR):HRESULT; stdcall;
  348. function put_LastName(pwsz:BSTR):HRESULT; stdcall;
  349. function put_Suffix(pwsz:BSTR):HRESULT; stdcall;
  350. function put_HomeAddressStreet(pwsz:BSTR):HRESULT; stdcall;
  351. function put_HomeAddressCity(pwsz:BSTR):HRESULT; stdcall;
  352. function put_HomeAddressState(pwsz:BSTR):HRESULT; stdcall;
  353. function put_HomeAddressPostalCode(pwsz:BSTR):HRESULT; stdcall;
  354. function put_HomeAddressCountry(pwsz:BSTR):HRESULT; stdcall;
  355. function put_OtherAddressStreet(pwsz:BSTR):HRESULT; stdcall;
  356. function put_OtherAddressCity(pwsz:BSTR):HRESULT; stdcall;
  357. function put_OtherAddressState(pwsz:BSTR):HRESULT; stdcall;
  358. function put_OtherAddressPostalCode(pwsz:BSTR):HRESULT; stdcall;
  359. function put_OtherAddressCountry(pwsz:BSTR):HRESULT; stdcall;
  360. function put_BusinessAddressStreet(pwsz:BSTR):HRESULT; stdcall;
  361. function put_BusinessAddressCity(pwsz:BSTR):HRESULT; stdcall;
  362. function put_BusinessAddressState(pwsz:BSTR):HRESULT; stdcall;
  363. function put_BusinessAddressPostalCode(pwsz:BSTR):HRESULT; stdcall;
  364. function put_BusinessAddressCountry(pwsz:BSTR):HRESULT; stdcall;
  365. function put_RadioTelephoneNumber(pwsz:BSTR):HRESULT; stdcall;
  366. function put_FileAs(pwsz:BSTR):HRESULT; stdcall;
  367. function put_Body(pwsz:BSTR):HRESULT; stdcall;
  368. function put_YomiCompanyName(pwsz:BSTR):HRESULT; stdcall;
  369. function put_YomiFirstName(pwsz:BSTR):HRESULT; stdcall;
  370. function put_YomiLastName(pwsz:BSTR):HRESULT; stdcall;
  371. function Save:HRESULT; stdcall;
  372. function Delete:HRESULT; stdcall;
  373. function Copy(out ppolCopy:IContact):HRESULT; stdcall;
  374. function Display:HRESULT; stdcall;
  375. function get_Oid(poid:LPLONG):HRESULT; stdcall;
  376. function put_BodyInk(pcebl:PCEBLOB):HRESULT; stdcall;
  377. function get_BodyInk(pcebl:PCEBLOB):HRESULT; stdcall;
  378. function get_Application(out polApp:IPOutlookApp):HRESULT; stdcall;
  379. end;
  380. {****************************************
  381. * Generated header for interface: ITask
  382. * at Mon Dec 07 11:02:04 1998
  383. * using MIDL 3.02.88
  384. ****************************************}
  385. // [dual][full][helpstring][uuid][object]
  386. ITask = interface(IDispatch)
  387. ['{37C78CE0-202C-11d2-8F18-0000F87A4335}']
  388. function ClearRecurrencePattern:HRESULT; stdcall;
  389. function GetRecurrencePattern(out ppRecPattern:IRecurrencePattern):HRESULT; stdcall;
  390. function get_IsRecurring(pfIsRecurring:PVARIANT_BOOL):HRESULT; stdcall;
  391. function get_Subject(out ppwsz:BSTR):HRESULT; stdcall;
  392. function get_Categories(out ppwsz:BSTR):HRESULT; stdcall;
  393. function get_StartDate(pst:PDATE):HRESULT; stdcall;
  394. function get_DueDate(pst:PDATE):HRESULT; stdcall;
  395. function get_DateCompleted(pst:PDATE):HRESULT; stdcall;
  396. function get_Importance(pdwPriority:LPLONG):HRESULT; stdcall;
  397. function get_Complete(pfCompleted:PVARIANT_BOOL):HRESULT; stdcall;
  398. function get_Sensitivity(plSensitivity:LPLONG):HRESULT; stdcall;
  399. function get_TeamTask(pfTeamTask:PVARIANT_BOOL):HRESULT; stdcall;
  400. function get_Body(out ppwsz:BSTR):HRESULT; stdcall;
  401. function get_ReminderSet(pfReminderSet:PVARIANT_BOOL):HRESULT; stdcall;
  402. function get_ReminderSoundFile(out ppwsz:BSTR):HRESULT; stdcall;
  403. function get_ReminderTime(pst:PDATE):HRESULT; stdcall;
  404. function get_ReminderOptions(pdwOptions:LPLONG):HRESULT; stdcall;
  405. function put_Subject(pwsz:BSTR):HRESULT; stdcall;
  406. function put_Categories(pwsz:BSTR):HRESULT; stdcall;
  407. function put_StartDate(st:TDateTime):HRESULT; stdcall;
  408. function put_DueDate(st:TDateTime):HRESULT; stdcall;
  409. function put_Importance(dwPriority:LONG):HRESULT; stdcall;
  410. function put_Complete(fCompleted:VARIANT_BOOL):HRESULT; stdcall;
  411. function put_Sensitivity(lSensitivity:LONG):HRESULT; stdcall;
  412. function put_TeamTask(fTeamTask:VARIANT_BOOL):HRESULT; stdcall;
  413. function put_Body(pwsz:BSTR):HRESULT; stdcall;
  414. function put_ReminderSet(fReminderSet:VARIANT_BOOL):HRESULT; stdcall;
  415. function put_ReminderSoundFile(pwsz:BSTR):HRESULT; stdcall;
  416. function put_ReminderTime(st:TDateTime):HRESULT; stdcall;
  417. function put_ReminderOptions(dwOptions:LONG):HRESULT; stdcall;
  418. function Save:HRESULT; stdcall;
  419. function Delete:HRESULT; stdcall;
  420. function SkipRecurrence:HRESULT; stdcall;
  421. function Copy(out ppolCopy:ITask):HRESULT; stdcall;
  422. function Display:HRESULT; stdcall;
  423. function get_Oid(poid:LPLONG):HRESULT; stdcall;
  424. function put_BodyInk(pcebl:PCEBLOB):HRESULT; stdcall;
  425. function get_BodyInk(pcebl:PCEBLOB):HRESULT; stdcall;
  426. function get_Application(out polApp:IPOutlookApp):HRESULT; stdcall;
  427. end;
  428. {****************************************
  429. * Generated header for interface: IAppointment
  430. * at Mon Dec 07 11:02:04 1998
  431. * using MIDL 3.02.88
  432. ****************************************}
  433. // [dual][full][helpstring][uuid][object]
  434. IAppointment = interface(IDispatch)
  435. ['{5B43F691-202C-11d2-8F18-0000F87A4335}']
  436. function ClearRecurrencePattern:HRESULT; stdcall;
  437. function GetRecurrencePattern(ppRecPattern:IRecurrencePattern):HRESULT; stdcall;
  438. function get_IsRecurring(pfIsRecurring:PVARIANT_BOOL):HRESULT; stdcall;
  439. function get_Subject(out ppwsz:BSTR):HRESULT; stdcall;
  440. function get_Location(out ppwsz:BSTR):HRESULT; stdcall;
  441. function get_Categories(out ppwsz:BSTR):HRESULT; stdcall;
  442. function get_Start(pst:PDATE):HRESULT; stdcall;
  443. function get_Duration(pnLen:LPLONG):HRESULT; stdcall;
  444. function get_End(pst:PDATE):HRESULT; stdcall;
  445. function get_AllDayEvent(pfAllDay:PVARIANT_BOOL):HRESULT; stdcall;
  446. function get_BusyStatus(pnState:LPLONG):HRESULT; stdcall;
  447. function get_Sensitivity(plSensitivity:LPLONG):HRESULT; stdcall;
  448. function get_Body(out ppwsz:BSTR):HRESULT; stdcall;
  449. function get_Recipients(pRecipients:IRecipients):HRESULT; stdcall;
  450. function get_MeetingStatus(pnStatus:LPLONG):HRESULT; stdcall;
  451. function get_ReminderSet(pfReminderSet:PVARIANT_BOOL):HRESULT; stdcall;
  452. function get_ReminderSoundFile(out ppwsz:BSTR):HRESULT; stdcall;
  453. function get_ReminderMinutesBeforeStart(plMinutes:LPLONG):HRESULT; stdcall;
  454. function get_ReminderOptions(pdwOptions:LPLONG):HRESULT; stdcall;
  455. function put_Subject(pwsz:BSTR):HRESULT; stdcall;
  456. function put_Location(pwsz:BSTR):HRESULT; stdcall;
  457. function put_Categories(pwsz:BSTR):HRESULT; stdcall;
  458. function put_Start(st:TDateTime):HRESULT; stdcall;
  459. function put_Duration(nLen:LONG):HRESULT; stdcall;
  460. function put_End(st:TDateTime):HRESULT; stdcall;
  461. function put_AllDayEvent(fAllDay:VARIANT_BOOL):HRESULT; stdcall;
  462. function put_BusyStatus(nState:LONG):HRESULT; stdcall;
  463. function put_Sensitivity(lSensitivity:LONG):HRESULT; stdcall;
  464. function put_Body(pwsz:BSTR):HRESULT; stdcall;
  465. function put_ReminderSet(fReminderSet:VARIANT_BOOL):HRESULT; stdcall;
  466. function put_ReminderSoundFile(pwsz:BSTR):HRESULT; stdcall;
  467. function put_ReminderMinutesBeforeStart(lMinutes:LONG):HRESULT; stdcall;
  468. function put_ReminderOptions(dwOptions:LONG):HRESULT; stdcall;
  469. function Save:HRESULT; stdcall;
  470. function Send:HRESULT; stdcall;
  471. function Delete:HRESULT; stdcall;
  472. function Cancel:HRESULT; stdcall;
  473. function Copy(out ppolCopy:IAppointment):HRESULT; stdcall;
  474. function Display:HRESULT; stdcall;
  475. function get_Oid(poid:LPLONG):HRESULT; stdcall;
  476. function put_BodyInk(pcebl:PCEBLOB):HRESULT; stdcall;
  477. function get_BodyInk(pcebl:PCEBLOB):HRESULT; stdcall;
  478. function get_Application(out polApp:IPOutlookApp):HRESULT; stdcall;
  479. end;
  480. {****************************************
  481. * Generated header for interface: ICity
  482. * at Mon Dec 07 11:02:04 1998
  483. * using MIDL 3.02.88
  484. ****************************************}
  485. // [dual][full][helpstring][uuid][object]
  486. ICity = interface(IDispatch)
  487. ['{C83C5E90-3D1B-11d2-8F1B-0000F87A4335}']
  488. function get_Longitude(pcLongitude:LPLONG):HRESULT; stdcall;
  489. function get_Latitude(pcLatitude:LPLONG):HRESULT; stdcall;
  490. function get_TimezoneIndex(pcTimezone:LPLONG):HRESULT; stdcall;
  491. function get_AirportCode(out ppwsz:BSTR):HRESULT; stdcall;
  492. function get_CountryPhoneCode(out ppwsz:BSTR):HRESULT; stdcall;
  493. function get_AreaCode(out ppwsz:BSTR):HRESULT; stdcall;
  494. function get_Name(out ppwsz:BSTR):HRESULT; stdcall;
  495. function get_Country(out ppwsz:BSTR):HRESULT; stdcall;
  496. function get_InROM(pfInROM:PVARIANT_BOOL):HRESULT; stdcall;
  497. function put_Longitude(cLongitude:LONG):HRESULT; stdcall;
  498. function put_Latitude(cLatitude:LONG):HRESULT; stdcall;
  499. function put_TimezoneIndex(cTimezone:LONG):HRESULT; stdcall;
  500. function put_AirportCode(pwsz:BSTR):HRESULT; stdcall;
  501. function put_CountryPhoneCode(pwsz:BSTR):HRESULT; stdcall;
  502. function put_AreaCode(pwsz:BSTR):HRESULT; stdcall;
  503. function put_Name(pwsz:BSTR):HRESULT; stdcall;
  504. function put_Country(pwsz:BSTR):HRESULT; stdcall;
  505. function Save:HRESULT; stdcall;
  506. function Delete:HRESULT; stdcall;
  507. function Copy(out ppolCopy:ICity):HRESULT; stdcall;
  508. function get_Application(out polApp:IPOutlookApp):HRESULT; stdcall;
  509. end;
  510. {****************************************
  511. * Generated header for interface: IFolder
  512. * at Mon Dec 07 11:02:04 1998
  513. * using MIDL 3.02.88
  514. ****************************************}
  515. // [dual][full][helpstring][uuid][object]
  516. IFolder = interface(IDispatch)
  517. ['{05058F20-20BE-11d2-8F18-0000F87A4335}']
  518. function get_Items(out ppolItems:IPOutlookItemCollection):HRESULT; stdcall;
  519. function get_DefaultItemType(polItem:PLongint):HRESULT; stdcall;
  520. function get_Application(out polApp:IPOutlookApp):HRESULT; stdcall;
  521. function AddItemToInfraredFolder(olItem:longint; polItem:IDispatch):HRESULT; stdcall;
  522. function SendToInfrared:HRESULT; stdcall;
  523. function ReceiveFromInfrared(out ppItems:IPOutlookItemCollection):HRESULT; stdcall;
  524. end;
  525. {****************************************
  526. * Generated header for interface: IPOutlookApp
  527. * at Mon Dec 07 11:02:04 1998
  528. * using MIDL 3.02.88
  529. ****************************************}
  530. // [dual][full][helpstring][uuid][object]
  531. IPOutlookApp = interface(IDispatch)
  532. ['{05058F22-20BE-11d2-8F18-0000F87A4335}']
  533. function Logon(_hWnd:LONG):HRESULT; stdcall;
  534. function Logoff:HRESULT; stdcall;
  535. function get_Version(out ppwszVersion:BSTR):HRESULT; stdcall;
  536. function GetDefaultFolder(olFolder:longint; out ppIFolder:IFolder):HRESULT; stdcall;
  537. function CreateItem(olItem:longint; out ppPOutlookItem:IDispatch):HRESULT; stdcall;
  538. function GetItemFromOid(oid:LONG; out ppPOutlookItem:IDispatch):HRESULT; stdcall;
  539. function get_HomeCity(out ppHomeCity:ICity):HRESULT; stdcall;
  540. function put_HomeCity(pHomeCity:ICity):HRESULT; stdcall;
  541. function get_VisitingCity(out ppVisitingCity:ICity):HRESULT; stdcall;
  542. function put_VisitingCity(pVisitingCity:ICity):HRESULT; stdcall;
  543. function get_CurrentCityIndex(pnolCity:LPLONG):HRESULT; stdcall;
  544. function put_CurrentCityIndex(olCity:LONG):HRESULT; stdcall;
  545. function ReceiveFromInfrared:HRESULT; stdcall;
  546. function get_OutlookCompatible(pfCompat:PVARIANT_BOOL):HRESULT; stdcall;
  547. function GetTimeZoneFromIndex(cTimezone:longint; out ppTz:ITimeZone):HRESULT; stdcall;
  548. function GetTimeZoneInformationFromIndex(cTimezone:longint; ptzInfo:LPTIME_ZONE_INFORMATION):HRESULT; stdcall;
  549. function get_Application(out polApp:IPOutlookApp):HRESULT; stdcall;
  550. function SysFreeString(_bstr:BSTR):HRESULT; stdcall;
  551. function VariantTimeToSystemTime(_date:TDateTime; pst:PSYSTEMTIME):HRESULT; stdcall;
  552. function SystemTimeToVariantTime(pst:PSYSTEMTIME; _pdate:PDATE):HRESULT; stdcall;
  553. end;
  554. IPOutlookApp2 = interface(IPOutlookApp)
  555. ['{AF7D0DC7-3D35-424b-AA60-27A38B8B629E}']
  556. function GetIDsFromNames(cPropNames:ULONG; rgszPropNames:pointer{^LPCWSTR}; ulFlags:ULONG; rgPropIDs:PCEPROPID):HRESULT; stdcall;
  557. function GetItemFromOidEx(oidPIM:ULONG; ulFlags:ULONG; out ppItem:IItem):HRESULT; stdcall;
  558. end;
  559. IItem = interface(IUnknown)
  560. ['{FB8998D0-38F0-4d12-AC56-4EC8FCE9F3D5}']
  561. function GetProps(rgPropID:PCEPROPID;
  562. ulFlags:ULONG;
  563. cProps:word;
  564. prgVals:pointer{^PCEPROPVAL};
  565. pcbBuffer:PULONG;
  566. hHeap:HANDLE):HRESULT; stdcall;
  567. function SetProps(ulFlags:ULONG; cProps:word; rgVals:PCEPROPVAL):HRESULT; stdcall;
  568. function Save:HRESULT; stdcall;
  569. function Delete:HRESULT; stdcall;
  570. function Display(hwndParent:HWND):HRESULT; stdcall;
  571. function Edit(hwndParent:HWND):HRESULT; stdcall;
  572. function Copy(out ppolCopy:IItem):HRESULT; stdcall;
  573. function get_Oid(poid:LPLONG):HRESULT; stdcall;
  574. function OpenProperty(propID:CEPROPID; dwMode:DWORD; out ppStream:IStream):HRESULT; stdcall;
  575. function get_DefaultItemType(polItem:PLongint):HRESULT; stdcall;
  576. function get_Application(out polApp:IPOutlookApp):HRESULT; stdcall;
  577. function get_Parent(out ppIFolder:IFolder):HRESULT; stdcall;
  578. function AddCategory(pszwCategory:LPCWSTR):HRESULT; stdcall;
  579. function RemoveCategory(pszwCategory:LPCWSTR):HRESULT; stdcall;
  580. end;
  581. IPOlItems2 = interface(IPOlItems)
  582. ['{CB52F880-4CB0-4a23-AA09-82326C98929F}']
  583. // Get props for the item at a given index without instantiating
  584. // an object for the item
  585. function GetProps(iIndex:longint;
  586. rgPropID:PCEPROPID;
  587. ulFlags:ULONG;
  588. cProps:word;
  589. prgVals:pointer{^PCEPROPVAL};
  590. pcbBuffer:PULONG;
  591. hHeap:HANDLE):HRESULT; stdcall;
  592. end;
  593. {****************************************
  594. * Generated header for library: PocketOutlook
  595. * at Mon Dec 07 11:02:04 1998
  596. * using MIDL 3.02.88
  597. ****************************************}
  598. // [helpstring][version][uuid]
  599. // Maximum/min dates for calendar entries
  600. const
  601. CAL_MAXDATE = TDateTime(401768.0); // 12/31/2999
  602. CAL_MINDATE = TDateTime(0.0); // 12/30/1899
  603. DATE_NONE = TDateTime(949998.0); // 1/1/4501
  604. // Custom error codes
  605. const
  606. E_CLOCKRUNNING = (SEVERITY_ERROR shl 31) or (FACILITY_ITF shl 16) or 100;
  607. E_CITYINROM = (SEVERITY_ERROR shl 31) or (FACILITY_ITF shl 16) or 101;
  608. E_FIELDTOOLARGE = (SEVERITY_ERROR shl 31) or (FACILITY_ITF shl 16) or 102;
  609. E_INVALIDREMINDERTIME = (SEVERITY_ERROR shl 31) or (FACILITY_ITF shl 16) or 103;
  610. E_INVALIDDATES = (SEVERITY_ERROR shl 31) or (FACILITY_ITF shl 16) or 104;
  611. E_ALLDAYMEETING = (SEVERITY_ERROR shl 31) or (FACILITY_ITF shl 16) or 105;
  612. E_OVERLAPPINGEXCEPTION = (SEVERITY_ERROR shl 31) or (FACILITY_ITF shl 16) or 106;
  613. E_CANTCHANGEDATE = (SEVERITY_ERROR shl 31) or (FACILITY_ITF shl 16) or 107;
  614. E_EXCEPTIONSAMEDAY = (SEVERITY_ERROR shl 31) or (FACILITY_ITF shl 16) or 108;
  615. E_UNWANTEDITEM = (SEVERITY_ERROR shl 31) or (FACILITY_ITF shl 16) or 109;
  616. S_AUTO_CLOSED = (SEVERITY_SUCCESS shl 31) or (FACILITY_ITF shl 16) or 150;
  617. type
  618. OlImportance = (olImportanceLow := 0,
  619. olImportanceNormal := 1,
  620. olImportanceHigh := 2);
  621. OlDefaultFolders = (olFolderCalendar := 9,
  622. olFolderContacts := 10,
  623. olFolderTasks := 13,
  624. olFolderCities := 101,
  625. olFolderInfrared := 102);
  626. OlItemType = (olAppointmentItem := 1,
  627. olContactItem := 2,
  628. olTaskItem := 3,
  629. olCityItem := 102);
  630. OlReminderOptions = (olLED := 1,
  631. olVibrate := 2,
  632. olDialog := 4,
  633. olSound := 8,
  634. olRepeat := 16);
  635. OlBusyStatus = (olFree := 0,
  636. olTentative := 1,
  637. olBusy := 2,
  638. olOutOfOffice := 3);
  639. OlMeetingStatusFlags = (olMeetingFlag := 1,
  640. olReceivedFlag := 2,
  641. olCanceledFlag := 4,
  642. olForwardedFlag := 8);
  643. // This type was declared in pimstore.h as a enumerated one. And its values
  644. // are olNonMeeting, olMeeting, olMeetingAccepted, olMeetingCanceled.
  645. OlMeetingStatus = longint;
  646. const
  647. olNonMeeting = OlMeetingStatus(0);
  648. olMeeting = OlMeetingStatus(olMeetingFlag);
  649. olMeetingAccepted = OlMeetingStatus(olMeetingFlag) or
  650. OlMeetingStatus(olReceivedFlag);
  651. olMeetingCanceled = OlMeetingStatus(olMeetingFlag) or
  652. OlMeetingStatus(olReceivedFlag) or
  653. OlMeetingStatus(olCanceledFlag);
  654. type
  655. OlCurrentCity = (olHomeCity := 0,
  656. olVisitingCity := 1);
  657. OlRecurrenceType = (olRecursOnce := -1,
  658. olRecursDaily := 0,
  659. olRecursWeekly := 1,
  660. olRecursMonthly := 2,
  661. olRecursMonthNth := 3,
  662. olRecursYearly := 5,
  663. olRecursYearNth := 6);
  664. OlDaysOfWeek = (olSunday := 1,
  665. olMonday := 2,
  666. olTuesday := 4,
  667. olWednesday := 8,
  668. olThursday := 16,
  669. olFriday := 32,
  670. olSaturday := 64);
  671. OlSensitivity = (olNormal := 0,
  672. olPersonal := 1,
  673. olPrivate := 2,
  674. olConfidential := 3);
  675. // Menu Extensions - ItemRef types
  676. const
  677. ITI_ContactItemRef:TIID = '{18103FDF-CAEC-42EB-90E7-1C76D6E60D24}';
  678. ITI_PimItemRef:TIID = '{18103FDF-CAEC-42EB-90E7-1C76D6E60D24}'; // back-compat w/ old clients // ITI_PimItemRef = ITI_ContactItemRef;
  679. // Additional Prototypes for ALL interfaces
  680. {
  681. unsigned long __RPC_USER BSTR_UserSize( unsigned long __RPC_FAR *, unsigned long , BSTR __RPC_FAR * );
  682. unsigned AnsiChar __RPC_FAR * __RPC_USER BSTR_UserMarshal( unsigned long __RPC_FAR *, unsigned AnsiChar __RPC_FAR *, BSTR __RPC_FAR * );
  683. unsigned AnsiChar __RPC_FAR * __RPC_USER BSTR_UserUnmarshal(unsigned long __RPC_FAR *, unsigned AnsiChar __RPC_FAR *, BSTR __RPC_FAR * );
  684. void __RPC_USER BSTR_UserFree( unsigned long __RPC_FAR *, BSTR __RPC_FAR * );
  685. }
  686. // Flags for the Contact Chooser
  687. const
  688. CCF_DEFAULT = $0000;
  689. CCF_HIDENEW = $0001;
  690. CCF_CHOOSECONTACTONLY = $0002;
  691. CCF_CHOOSEPROPERTYONLY = $0004;
  692. CCF_RETURNCONTACTNAME = $0008;
  693. CCF_RETURNPROPERTYVALUE = $0010;
  694. CCF_FILTERREQUIREDPROPERTIES = $0020;
  695. CCF_NOUIONSINGLEORNOMATCH = $0040;
  696. CCF_NOUI = $0080;
  697. CCF_ENABLEGAL = $0100;
  698. CCF_ALLOWNEWCONTACTSELECTION = $0200;
  699. type
  700. tagCHOOSECONTACT = record
  701. cbSize:UINT;
  702. hwndOwner:HWND;
  703. dwFlags:DWORD;
  704. lpstrTitle:LPCWSTR;
  705. lpstrChoosePropertyText:LPCWSTR;
  706. lpstrRestrictContacts:LPCWSTR;
  707. lpstrIncrementalFilter:LPCWSTR;
  708. cRequiredProperties:UINT;
  709. rgpropidRequiredProperties:PCEPROPID;
  710. oidContactID:CEOID;
  711. bstrContactName:BSTR;
  712. propidSelected:CEPROPID;
  713. bstrPropertyValueSelected:BSTR;
  714. end;
  715. _CHOOSECONTACT = tagCHOOSECONTACT;
  716. LPCHOOSECONTACT = ^tagCHOOSECONTACT;
  717. const
  718. PIMStoreDLL = 'pimstore.dll';
  719. function ChooseContact(lpcc:LPCHOOSECONTACT):HRESULT; cdecl; external PIMStoreDLL name 'ChooseContact';
  720. // Returns a Contact object of the first closest match
  721. function FindMatchingContact(pPOOM:IPOutlookApp; pszFind:LPCWSTR; dwFlags:DWORD; out ppContact:IItem; ppropid:PCEPROPID):HRESULT; cdecl; external PIMStoreDLL name 'FindMatchingContact';
  722. // Flags for FindMatchingContact
  723. const
  724. FMCF_FINDPHONE = $00000001;
  725. FMCF_FINDEMAIL = $00000002;
  726. FMCF_FINDFILEAS = $00000004;
  727. // Returns the index of the item in the collection for the given oidPIM
  728. function GetItemIndexFromOid(pItems:IPOutlookItemCollection; oidPIM:CEOID; pdwIndex:LPDWORD):HRESULT; cdecl; external PIMStoreDLL name 'GetItemIndexFromOid';
  729. // end of Additional Prototypes
  730. // Macro function.
  731. function PIM_PROP_TAG(ulPropType:ULONG; ulPropID:ULONG):ULONG;
  732. // Was declared as:
  733. // #define PIM_PROP_TAG(ulPropType,ulPropID) ((((ULONG)(ulPropID))<<16)|((ULONG)(ulPropType)))
  734. const
  735. CEVT_PIM_STREAM = 100;
  736. CEVT_PIM_AUTO_I4 = 102;
  737. // Flags for GetIDsFromNames
  738. PIM_CREATE = $010000; // Creates if doesn't exist
  739. // GetIDsFromNames Flags that are used only if PIM_CREATE flag is set:
  740. PIM_INDEXED = $200000; // whether the named property should be indexed for faster Find functionality
  741. PIM_DONTREPLICATE = $400000; // whether the named property shouldn't be replicated over to the new object when Copy is called
  742. const
  743. // If GetIDsFromNames fails to find an index for a proptag, the following proptag is returned
  744. PIMPR_INVALID_ID = (CEVT_I2 shl 16) or $FFFF;
  745. // Properties which fast find is not implemented: (Managed: Microsoft.WindowsMobile.PocketOutlook.ContactProperty )
  746. PIMPR_ALL_PHONE = (CEVT_LPWSTR shl 16) or $1800; // AllPhone: All telephone numbers. This property is used with the contact chooser dialog.
  747. PIMPR_ALL_EMAIL = (CEVT_LPWSTR shl 16) or $1801; // AllEmail: All email addresses. This property is used with the contact chooser dialog.
  748. PIMPR_ALL_TEXT_MESSAGING = (CEVT_LPWSTR shl 16) or $1802; // AllTextMessaging: All text messaging addresses. This property is used with the contact chooser dialog.
  749. PIMPR_ALL_INSTANT_MESSAGING = (CEVT_LPWSTR shl 16) or $1803; // AllInstantMessaging: All instant messaging addresses. This property is used with the contact chooser dialog.
  750. PIMPR_ALL_COMMUNICATION_METHODS = (CEVT_LPWSTR shl 16) or $1804; // AllCommunicationMethods: All communication methods. This property is used with the contact chooser dialog.
  751. PIMPR_ALL_VOICE = (CEVT_LPWSTR shl 16) or $1805; // AllVoice: All voice numbers. This property is used with the contact chooser dialog.
  752. PIMPR_ALL_PHONE_AND_SIM = (CEVT_LPWSTR shl 16) or $1806; // AllPhoneAndSIM: All telephone and SIM numbers. This property is used with the contact chooser dialog.
  753. // Shared Props (Managed: Microsoft.WindowsMobile.PocketOutlook.ContactProperty, Microsoft.WindowsMobile.PocketOutlook.AppointmentProperty, Microsoft.WindowsMobile.PocketOutlook.TaskProperty )
  754. PIMPR_OID = (CEVT_PIM_AUTO_I4 shl 16) or $1000;
  755. PIMPR_FOLDERNOTIFICATIONS = (CEVT_UI4 shl 16) or $1001;
  756. PIMPR_FOLDER_CATEGORIES = (CEVT_LPWSTR shl 16) or $101A; // FolderCategories: A comma-separated list of all the categories that are used in this folder
  757. PIMPR_SOURCE_ID = (CEVT_UI4 shl 16) or $001B; // SourceId: An integer indicating the source, or owning application, of the PIM item. Zero is the default.
  758. PIMPR_RECENT = (CEVT_BOOL shl 16) or $101C; // Recent: A value indicating whether this PIM item is in the "recently viewed" list
  759. PIMPR_CATEGORIES = (CEVT_LPWSTR shl 16) or $101D; // Categories: A comma-separated list of the categories that apply to this item
  760. PIMPR_BODY_BINARY = (CEVT_PIM_STREAM shl 16) or $001E; // BodyInk: The ink Notes of the PIM item
  761. PIMPR_BODY_TEXT = (CEVT_LPWSTR shl 16) or $101F; // Body: The text Notes of the PIM item
  762. PIMPR_DO_NOT_SYNC = (CEVT_UI4 shl 16) or $1010; // DoNotSynchronize: Do not sync the item to Exchange/Outlook. This property can only be set during item creation.
  763. // Calendar/Tasks Shared (Managed: Microsoft.WindowsMobile.PocketOutlook.AppointmentProperty , Microsoft.WindowsMobile.PocketOutlook.TaskProperty )
  764. PIMPR_SUBJECT = (CEVT_LPWSTR shl 16) or $0020; // Subject: The subject
  765. PIMPR_SENSITIVITY = (CEVT_UI4 shl 16) or $0021; // Sensitivity: The sensitivity (Normal = 0, Personal = 1, Private = 2, Confidential = 3)
  766. PIMPR_IS_RECURRING = (CEVT_BOOL shl 16) or $0022; // IsRecurring: A value indicating whether the appointment or task is recurring.
  767. PIMPR_REMINDER_SET = (CEVT_BOOL shl 16) or $0028; // ReminderSet: A value indicating whether the user wants to be reminded of an appointment or task.
  768. PIMPR_REMINDER_SOUND_FILE = (CEVT_LPWSTR shl 16) or $0029; // ReminderSoundFile: The path and file name of the sound file to play when the reminder occurs.
  769. PIMPR_REMINDER_OPTIONS = (CEVT_UI4 shl 16) or $002A; // ReminderOptions: What actions to take when the reminder occurs. (LED=1, Vibrate=2, Dialog=4, Sound=8, Repeat=16)
  770. // Recurring props
  771. PIMPR_RECURRING_TYPE = (CEVT_UI4 shl 16) or $1030; // RecurringType: The type (frequency) of recurrence: NoRecurrence = -1, Daily = 0, Weekly = 1, Monthly = 2, MonthByNumber = 3, Yearly = 5, Every Nth Year = 6
  772. PIMPR_RECURRING_PATTERNSTARTDATE = (CEVT_FILETIME shl 16) or $1031; // RecurringPatternStartDate: The starting date of the recurrence pattern.
  773. PIMPR_RECURRING_PATTERNENDDATE = (CEVT_FILETIME shl 16) or $1032; // RecurringPatternEndDate: The ending date of the recurrence pattern.
  774. PIMPR_RECURRING_STARTTIME = (CEVT_FILETIME shl 16) or $1033; // RecurringStartTime: The starting time of the recurrence pattern.
  775. PIMPR_RECURRING_ENDTIME = (CEVT_FILETIME shl 16) or $1034; // RecurringEndTime: The ending date of the recurrence pattern.
  776. PIMPR_RECURRING_NOEND = (CEVT_BOOL shl 16) or $1035; // RecurringNoEnd: A value indicating whether the recurrence pattern has an end.
  777. PIMPR_RECURRING_OCCURRENCES = (CEVT_UI4 shl 16) or $1036; // RecurringOccurrences: The number of occurences
  778. PIMPR_RECURRING_INTERVAL = (CEVT_UI4 shl 16) or $1037; // RecurringInterval: The length of time between occurrences.
  779. PIMPR_RECURRING_DAYOFWEEKMASK = (CEVT_UI4 shl 16) or $1038; // RecurringDayOfWeekMask: The days of the week of the recurrence. (Sunday=1, Monday=2, Tuesday=4, etc.)
  780. PIMPR_RECURRING_DAYOFMONTH = (CEVT_UI4 shl 16) or $1039; // RecurringDayOfMonth: The day in a month on which an item occurs, from 1 to 31.
  781. PIMPR_RECURRING_INSTANCE = (CEVT_UI4 shl 16) or $103A; // RecurringInstance: The week of the month in which an item occurs, from one to five.
  782. PIMPR_RECURRING_DURATION = (CEVT_UI4 shl 16) or $103B; // RecurringDuration: The duration of the recurrence pattern.
  783. PIMPR_RECURRING_MONTHOFYEAR = (CEVT_UI4 shl 16) or $103C; // RecurringMonthOfYear: The month of the year on which an item occurs, from one to twelve.
  784. // Calendar props (Managed: Microsoft.WindowsMobile.PocketOutlook.AppointmentProperty )
  785. PIMPR_DURATION = (CEVT_UI4 shl 16) or $1040; // Duration: The length of an appointment in minutes.
  786. PIMPR_LOCATION = (CEVT_LPWSTR shl 16) or $0041; // Location: The location of an appointment.
  787. PIMPR_START = (CEVT_FILETIME shl 16) or $1042; // Start: The start time of an appointment.
  788. PIMPR_END = (CEVT_FILETIME shl 16) or $1043; // End: The end time of an appointment.
  789. PIMPR_ALL_DAY_EVENT = (CEVT_BOOL shl 16) or $0044; // AllDayEvent: A value indicating whether an appointment occurs as an all day event.
  790. PIMPR_BUSY_STATUS = (CEVT_UI4 shl 16) or $0045; // BusyStatus: A contact's availability in the time period spanned by an appointment (Free = 0, Tentative = 1, Busy = 2, OutOfOffice = 3)
  791. PIMPR_REMINDER_MINUTES_BEFORE_START = (CEVT_UI4 shl 16) or $0046; // ReminderMinutesBeforeStart: The number of minutes a reminder alarm occurs before the start of an appointment.
  792. PIMPR_GLOBAL_OBJECT_ID = (CEVT_BLOB shl 16) or $0047; // GlobalObjectId: A unique identifier for the appointment
  793. PIMPR_TIMEZONE = (CEVT_BLOB shl 16) or $0048; // RecurringTimeZone: The timezone of the appointment as a TIME_ZONE_INFORMATION structure
  794. PIMPR_MEETING_STATUS = (CEVT_UI4 shl 16) or $0050; // MeetingStatus: A value indicating whether an appointment is a meeting. (NotMeeting = 0, Meeting = 1, MeetingAccepted=3, MeetingCanceled=7)
  795. PIMPR_MEETING_ORGANIZER_NAME = (CEVT_LPWSTR shl 16) or $0051; // MeetingOrganizerName: The name of the person who organized the meeting.
  796. PIMPR_MEETING_OWNER_CRITICAL_CHANGE = (CEVT_FILETIME shl 16) or $0052; // MeetingOwnerCriticalChange: A timestamp indicating that the meeting owner wants to update the meeting request. Required when sending an updated meeting request to attendees. Call Appointment.Update on the appointment before setting either MeetingOwnerCriticalChange or AttendeesCriticalChange.
  797. PIMPR_ATTENDEES_CRITICAL_CHANGE = (CEVT_FILETIME shl 16) or $0053; // AttendeesCriticalChange: A timestamp indicating that a meeting attendee wants to update the meeting request. Required when sending an updated meeting request back to the meeting owner.
  798. // Tasks props (Managed: Microsoft.WindowsMobile.PocketOutlook.TaskProperty )
  799. PIMPR_IMPORTANCE = (CEVT_UI4 shl 16) or $0060; // Importance: The importance of the meeting. (Low=0, Normal=1, High=2)
  800. PIMPR_TEAM_TASK = (CEVT_BOOL shl 16) or $0061; // TeamTask: A value indicating whether this task is a team task.
  801. PIMPR_START_DATE = (CEVT_FILETIME shl 16) or $0062; // StartDate: The start date of the task.
  802. PIMPR_DUE_DATE = (CEVT_FILETIME shl 16) or $0063; // DueDate: The due date of the task.
  803. PIMPR_DATE_COMPLETED = (CEVT_FILETIME shl 16) or $0064; // DateCompleted: The date the task was completed.
  804. PIMPR_COMPLETE = (CEVT_BOOL shl 16) or $1065; // Complete: A value indicating whether the task has been completed.
  805. PIMPR_REMINDER_TIME = (CEVT_FILETIME shl 16) or $1066; // ReminderTime: When a reminder for the task will occur.
  806. PIMPR_RECURRING_REGENERATING = (CEVT_BOOL shl 16) or $1067; // RecurringRegenerating: A value indicating whether the task recurs after it has been marked as completed.
  807. // Contacts props (Managed: Microsoft.WindowsMobile.PocketOutlook.ContactProperty )
  808. PIMPR_FILEAS = (CEVT_LPWSTR shl 16) or $0080; // FileAs: The filing string for the contact.
  809. PIMPR_TITLE = (CEVT_LPWSTR shl 16) or $0081; // Title: The contact's title.
  810. PIMPR_FIRST_NAME = (CEVT_LPWSTR shl 16) or $0082; // FirstName: The contact's first name.
  811. PIMPR_MIDDLE_NAME = (CEVT_LPWSTR shl 16) or $0083; // MiddleName: The contact's middle name.
  812. PIMPR_LAST_NAME = (CEVT_LPWSTR shl 16) or $0084; // LastName: The contact's last name.
  813. PIMPR_SUFFIX = (CEVT_LPWSTR shl 16) or $0085; // Suffix: The contact's name suffix.
  814. PIMPR_NICKNAME = (CEVT_LPWSTR shl 16) or $0086; // Nickname: The contact's nickname.
  815. PIMPR_YOMI_FIRSTNAME = (CEVT_LPWSTR shl 16) or $0087; // YomiFirstName: The contact's first name rendered in the Japanese Yomigana phonetic system.
  816. PIMPR_YOMI_LASTNAME = (CEVT_LPWSTR shl 16) or $0088; // YomiLastName: The contact's last name rendered in the Japanese Yomigana phonetic system.
  817. PIMPR_YOMI_COMPANY = (CEVT_LPWSTR shl 16) or $0089; // YomiCompanyName: The contact's company name rendered in the Japanese Yomigana phonetic system.
  818. PIMPR_COMPANY_NAME = (CEVT_LPWSTR shl 16) or $008A; // CompanyName: The contact's company name.
  819. PIMPR_DEPARTMENT = (CEVT_LPWSTR shl 16) or $008B; // Department: The contact's department name.
  820. PIMPR_JOB_TITLE = (CEVT_LPWSTR shl 16) or $008C; // JobTitle: The contact's job title.
  821. PIMPR_MANAGER = (CEVT_LPWSTR shl 16) or $008D; // Manager: The contact's manager's name.
  822. PIMPR_OFFICE_LOCATION = (CEVT_LPWSTR shl 16) or $008E; // OfficeLocation: The contact's office location.
  823. PIMPR_ASSISTANT_NAME = (CEVT_LPWSTR shl 16) or $008F; // AssistantName: The name of the contact's assistant.
  824. PIMPR_EMAIL1_ADDRESS = (CEVT_LPWSTR shl 16) or $0090; // Email1Address: The contact's e-mail address.
  825. PIMPR_EMAIL2_ADDRESS = (CEVT_LPWSTR shl 16) or $0091; // Email2Address: The contact's second e-mail address.
  826. PIMPR_EMAIL3_ADDRESS = (CEVT_LPWSTR shl 16) or $0092; // Email3Address: The contact's third e-mail address.
  827. PIMPR_IM1_ADDRESS = (CEVT_LPWSTR shl 16) or $0093; // IM1Address: The contact's Instant Messaging address.
  828. PIMPR_IM2_ADDRESS = (CEVT_LPWSTR shl 16) or $0094; // IM2Address: The contact's second Instant Messaging address.
  829. PIMPR_IM3_ADDRESS = (CEVT_LPWSTR shl 16) or $0095; // IM3Address: The contact's third Instant Messaging address.
  830. PIMPR_MOBILE_TELEPHONE_NUMBER = (CEVT_LPWSTR shl 16) or $0096; // MobileTelephoneNumber: The contact's mobile telephone number.
  831. PIMPR_BUSINESS_TELEPHONE_NUMBER = (CEVT_LPWSTR shl 16) or $0097; // BusinessTelephoneNumber: The contact's business telephone number.
  832. PIMPR_BUSINESS2_TELEPHONE_NUMBER = (CEVT_LPWSTR shl 16) or $0098; // Business2TelephoneNumber: The contact's second business telephone number.
  833. PIMPR_HOME_TELEPHONE_NUMBER = (CEVT_LPWSTR shl 16) or $0099; // HomeTelephoneNumber: The contact's home telephone number.
  834. PIMPR_HOME2_TELEPHONE_NUMBER = (CEVT_LPWSTR shl 16) or $009A; // Home2TelephoneNumber: The contact's second home telephone number.
  835. PIMPR_BUSINESS_FAX_NUMBER = (CEVT_LPWSTR shl 16) or $009B; // BusinessFaxNumber: The contact's business fax number.
  836. PIMPR_HOME_FAX_NUMBER = (CEVT_LPWSTR shl 16) or $009C; // HomeFaxNumber: The contact's home fax number.
  837. PIMPR_PAGER_NUMBER = (CEVT_LPWSTR shl 16) or $009D; // PagerNumber: The contact's pager number.
  838. PIMPR_CAR_TELEPHONE_NUMBER = (CEVT_LPWSTR shl 16) or $009E; // CarTelephoneNumber: The contact's car telephone number.
  839. PIMPR_RADIO_TELEPHONE_NUMBER = (CEVT_LPWSTR shl 16) or $009F; // RadioTelephoneNumber: The contact's radio telephone number.
  840. PIMPR_COMPANY_TELEPHONE_NUMBER = (CEVT_LPWSTR shl 16) or $00A0; // CompanyTelephoneNumber: The contact's company telephone number.
  841. PIMPR_ASSISTANT_TELEPHONE_NUMBER = (CEVT_LPWSTR shl 16) or $00A1; // AssistantTelephoneNumber: The contact's assistant's telephone number.
  842. PIMPR_SMS = (CEVT_LPWSTR shl 16) or $10A2; // Sms: The contact's SMS address.
  843. PIMPR_MMS = (CEVT_LPWSTR shl 16) or $10A3; // Mms: The contact's MMS address.
  844. PIMPR_DISPLAY_NAME = (CEVT_LPWSTR shl 16) or $10A4; // DisplayName: The contact's name as it should appear in the user interface
  845. PIMPR_SPOUSE = (CEVT_LPWSTR shl 16) or $00A5; // Spouse: The contact's spouse's name.
  846. PIMPR_CHILDREN = (CEVT_LPWSTR shl 16) or $00A6; // Children: The names of the contact's children.
  847. PIMPR_WEB_PAGE = (CEVT_LPWSTR shl 16) or $00A7; // WebPage: The address of the contact's web page.
  848. PIMPR_RINGTONE = (CEVT_LPWSTR shl 16) or $00A8; // RingTone: The custom ring tone for the contact.
  849. PIMPR_CUSTOMERID = (CEVT_LPWSTR shl 16) or $00A9; // CustomerId: The contact's customer ID.
  850. PIMPR_GOVERNMENTID = (CEVT_LPWSTR shl 16) or $00AA; // GovernmentId: The contact's government ID.
  851. PIMPR_ACCOUNT_NAME = (CEVT_LPWSTR shl 16) or $00AB; // AccountName: The contact's account name.
  852. PIMPR_BUSINESS_ADDRESS = (CEVT_LPWSTR shl 16) or $10C0; // BusinessAddress: The contact's business address.
  853. PIMPR_BUSINESS_ADDRESS_STREET = (CEVT_LPWSTR shl 16) or $00C1; // BusinessAddressStreet: The street name in the contact's business address.
  854. PIMPR_BUSINESS_ADDRESS_CITY = (CEVT_LPWSTR shl 16) or $00C2; // BusinessAddressCity: The city name in the contact's business address.
  855. PIMPR_BUSINESS_ADDRESS_STATE = (CEVT_LPWSTR shl 16) or $00C3; // BusinessAddressState: The state name in the contact's business address.
  856. PIMPR_BUSINESS_ADDRESS_POSTAL_CODE = (CEVT_LPWSTR shl 16) or $00C4; // BusinessAddressPostalCode: The postal code in the contact's business address.
  857. PIMPR_BUSINESS_ADDRESS_COUNTRY = (CEVT_LPWSTR shl 16) or $00C5; // BusinessAddressCountry: The country name in the contact's business address.
  858. PIMPR_HOME_ADDRESS = (CEVT_LPWSTR shl 16) or $10D0; // HomeAddress: The contact's home address.
  859. PIMPR_HOME_ADDRESS_STREET = (CEVT_LPWSTR shl 16) or $00D1; // HomeAddressStreet: The street name in the contact's home address.
  860. PIMPR_HOME_ADDRESS_CITY = (CEVT_LPWSTR shl 16) or $00D2; // HomeAddressCity: The city name in the contact's home address.
  861. PIMPR_HOME_ADDRESS_STATE = (CEVT_LPWSTR shl 16) or $00D3; // HomeAddressState: The state name in the contact's home address.
  862. PIMPR_HOME_ADDRESS_POSTAL_CODE = (CEVT_LPWSTR shl 16) or $00D4; // HomeAddressPostalCode: The postal code in the contact's home address
  863. PIMPR_HOME_ADDRESS_COUNTRY = (CEVT_LPWSTR shl 16) or $00D5; // HomeAddressCountry: The country name in the contact's home address.
  864. PIMPR_OTHER_ADDRESS = (CEVT_LPWSTR shl 16) or $10E0; // OtherAddress: The contact's other address.
  865. PIMPR_OTHER_ADDRESS_STREET = (CEVT_LPWSTR shl 16) or $00E1; // OtherAddressStreet: The street name in the contact's other address.
  866. PIMPR_OTHER_ADDRESS_CITY = (CEVT_LPWSTR shl 16) or $00E2; // OtherAddressCity: The city name in the contact's other address.
  867. PIMPR_OTHER_ADDRESS_STATE = (CEVT_LPWSTR shl 16) or $00E3; // OtherAddressState: The state name in the contact's other address.
  868. PIMPR_OTHER_ADDRESS_POSTAL_CODE = (CEVT_LPWSTR shl 16) or $00E4; // OtherAddressPostalCode: The postal code in the contact's other address
  869. PIMPR_OTHER_ADDRESS_COUNTRY = (CEVT_LPWSTR shl 16) or $00E5; // OtherAddressCountry: The country name in the contact's other address.
  870. PIMPR_BIRTHDAY = (CEVT_FILETIME shl 16) or $00F0; // Birthday: The contact's birthdate.
  871. PIMPR_ANNIVERSARY = (CEVT_FILETIME shl 16) or $00F1; // Anniversary: The contact's wedding anniversary date.
  872. PIMPR_SMARTPROP = (CEVT_UI4 shl 16) or $00F8; // SmartProperty: The property id of the property that is used as the primary communication method for the contact.
  873. PIMPR_PICTURE = (CEVT_PIM_STREAM shl 16) or $00FF; // Picture: The contact's picture.
  874. PIMPR_YOMI_FILEAS = (CEVT_LPWSTR shl 16) or $0101; // YomiFileAs: The contact's filing string rendered in the Japanese Yomigana phonetic system.
  875. PIMPR_CONTACT_TYPE = (CEVT_UI4 shl 16) or $0102; // ContactType: The type of the contact (Device or SIM contact).
  876. PIMPR_SIM_PHONE = (CEVT_LPWSTR shl 16) or $0003; // SIMPhone: The contact's telephone number stored on the telephone's SIM card.
  877. // Alowable values for PIMPR_CONTACT_TYPE
  878. type
  879. _PIMPR_CONTACTTYPE = (PIMPR_CONTACTTYPE_DEVICE := 0,
  880. PIMPR_CONTACTTYPE_SIM := 1);
  881. PIMPR_CONTACTTYPE = _PIMPR_CONTACTTYPE;
  882. // Registry keys, paths and value names for PIM Source Providers
  883. const
  884. PIMSRC_REGHKEY = HKEY_LOCAL_MACHINE;
  885. PIMSRC_REGPATH_COLORS = 'Colors';
  886. PIMSRC_REGPATH_ROOT = 'System\PIMSources';
  887. PIMSRC_REGVALUE_CLSID = 'CLSID';
  888. PIMSRC_REGVALUE_CUSTOMIZATIONS = 'Customizations';
  889. PIMSRC_REGVALUE_TYPE = 'Type';
  890. PIMSRC_REGVALUE_DISPLAYNAME = 'DisplayName';
  891. PIMSRC_REGVALUE_ICON = 'Icon';
  892. // Flags used to describe the types of PIM items that a source owns
  893. const
  894. PIMSRC_TYPE_CONTACTS = $00000001;
  895. PIMSRC_TYPE_APPOINTMENTS = $00000002;
  896. PIMSRC_TYPE_VALIDMASK = PIMSRC_TYPE_CONTACTS or PIMSRC_TYPE_APPOINTMENTS;
  897. // Flags used to describe the types of customizations that a source supports
  898. const
  899. PIMSRC_CUSTOM_CONTACTS_SUMMARY_CARD = $00000001;
  900. PIMSRC_CUSTOM_CONTACTS_PAINT_LIST_ICON = $00000004;
  901. PIMSRC_CUSTOM_CONTACTS_NEW = $00000008;
  902. PIMSRC_CUSTOM_APPOINTMENTS_COLORS = $00000800;
  903. PIMSRC_CUSTOM_VALIDMASK = PIMSRC_CUSTOM_CONTACTS_SUMMARY_CARD or
  904. PIMSRC_CUSTOM_CONTACTS_PAINT_LIST_ICON or
  905. PIMSRC_CUSTOM_CONTACTS_NEW or
  906. PIMSRC_CUSTOM_APPOINTMENTS_COLORS;
  907. // Colors that a source can customize
  908. type
  909. _PIMSRC_COLOR = (PIMSRC_COLOR_APPOINTMENTS_BACKGROUND := 1);
  910. PIMSRC_COLOR = _PIMSRC_COLOR;
  911. // Flags to indicate the drawing state for an item
  912. const
  913. PIMSRC_SCDS_SELECTED = $00000001;
  914. PIMSRC_SCDS_FOCUS = $00000010;
  915. // Read-only struct provided to Paint()
  916. type
  917. _SRCCUSTOMDRAW = record
  918. _hdc:HDC; // Device context for painting
  919. rc:RECT; // Bounding rect
  920. grfItemState:DWORD; // State of the item being drawn (selected, focused...)
  921. end;
  922. SRCCUSTOMDRAW = _SRCCUSTOMDRAW;
  923. PSRCCUSTOMDRAW = ^_SRCCUSTOMDRAW;
  924. ////////////////////////////////////////////////////////////////////////////
  925. // Interface IPimSrcContactSummaryCard
  926. //
  927. // Purpose:
  928. // Interface that a source can expose to customize the summary card for
  929. // a POOM contact.
  930. //
  931. type
  932. IPimSrcContactSummaryCard = interface(IUnknown)
  933. ['{95932f0a-e03a-412c-85ee-045365277e60}']
  934. ////////////////////////////////////////////////////////////////////////////
  935. // Display
  936. //
  937. // Purpose:
  938. // Source-specific version of IItem::Display() for contacts.
  939. //
  940. // Parameters:
  941. // IN hwndParent Parent HWND to use for UI
  942. // IN pitem IItem instance to display
  943. //
  944. // Returns values:
  945. // S_OK Success
  946. // E_INVALIDARG pitem was invalid
  947. //
  948. function Display(hwndParent:HWND; pitem:IItem):HRESULT; stdcall;
  949. end;
  950. ////////////////////////////////////////////////////////////////////////////
  951. // Interface IPimSrcContactNew
  952. //
  953. // Purpose:
  954. // Interface that a source can expose to perform custom actions when the
  955. // user chooses to creates a new contact using this source provider. The
  956. // source provider is responsible for displaying UI and ultimately saving
  957. // the new contact
  958. //
  959. IPimSrcContactNew = interface(IUnknown)
  960. ['{FD76819E-4BDC-4e98-880C-15DED1FDA30D}']
  961. ////////////////////////////////////////////////////////////////////////////
  962. // Create
  963. //
  964. // Purpose:
  965. // Allow a source provider to provide their own UI and behavior when
  966. // creating a new contact
  967. //
  968. // Parameters:
  969. // IN hwndParent Parent HWND to use for UI
  970. // INOUT pItem In: If pItem is non-null then it contains
  971. // data to be saved to the new contact.
  972. // Out: If pItem is non-null the oid of the
  973. // item is considered an out parameter.
  974. //
  975. // Returns values:
  976. // S_OK Success
  977. // S_FALSE The provider does not require special behavior.
  978. // Display the default contact edit card and save the
  979. // new contact with our source provider ID and the don't
  980. // sync flag set.
  981. // S_AUTO_CLOSED Success, but the provider requests that the resulting
  982. // summary card not be displayed. Providers should
  983. // return this if the creation dialog is being exited for
  984. // a reason other than the user dismissing it. In these
  985. // situations it may feel unexpected for the summary card
  986. // to appear.
  987. // E_INVALIDARG One of the arguments was invalid
  988. // E_ABORT The user cancelled item creation
  989. //
  990. // Remarks:
  991. // When Create is called with pItem non-null this indicates that
  992. // there is data that should be saved to the new created contact and
  993. // this data is supplied in pItem. In this case it is important to
  994. // ensure that the oid of the newly created item is populated in
  995. // pItem upon return so that the caller can link that oid to the
  996. // data that was being saved. A good example of this is saving
  997. // call history information to a contact - the oid returned in
  998. // pItem will be used to link the call history item to the new
  999. // contact. If the oid is not supplied then the call history item
  1000. // can not be linked so the display name will not be updated for
  1001. // that particular call history item in dialer or call history UI.
  1002. // Future calls to or from the contact would still be be matched in
  1003. // dialer or call history UI.
  1004. //
  1005. function Create(hwndParent:HWND; pItem:IItem):HRESULT; stdcall;
  1006. end;
  1007. ////////////////////////////////////////////////////////////////////////////
  1008. // Interface IPimSrcContactListIcon
  1009. //
  1010. // Purpose:
  1011. // Interface that a source can expose to customize the painting of a
  1012. // contact's icon in the contacts list view. The source should draw
  1013. // using a transparent background.
  1014. //
  1015. IPimSrcContactListIcon = interface(IUnknown)
  1016. ['{95932f0a-e03a-412c-85ee-045365277e62}']
  1017. ////////////////////////////////////////////////////////////////////////////
  1018. // Paint
  1019. //
  1020. // Purpose:
  1021. // This method enables a source to draw its own icon in the contacts
  1022. // list view. The source should draw using a transparent background.
  1023. //
  1024. // Parameters:
  1025. // IN pscd Painting information that the source can use
  1026. // IN oid The OID for the current contact or zero if
  1027. // the property could not be found.
  1028. //
  1029. // Returns values:
  1030. // S_OK The source drew the icon for this item
  1031. // S_FALSE The source did not draw the icon for this item.
  1032. // The contacts app should do default painting
  1033. // for this item
  1034. // E_INVALIDARG One of the arguments was invalid
  1035. //
  1036. function Paint(pscd:PSRCCUSTOMDRAW; oid:CEOID):HRESULT; stdcall;
  1037. end;
  1038. implementation
  1039. // Was declared as
  1040. // #define PIM_PROP_TAG(ulPropType,ulPropID) ((((ULONG)(ulPropID))<<16)|((ULONG)(ulPropType)))
  1041. function PIM_PROP_TAG(ulPropType:ULONG; ulPropID:ULONG):ULONG; inline;
  1042. begin
  1043. PIM_PROP_TAG:=(ulPropID shl 16) or ulPropType;
  1044. end;
  1045. end.