SKSummary.pas 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498
  1. {
  2. File: SearchKit/SKSummary.h
  3. Contains: SearchKit Interfaces.
  4. Version: SearchKit-407~38
  5. Copyright: © 2004-2008 by Apple Computer, Inc., all rights reserved
  6. Bugs?: For bug reports, consult the following page on
  7. the World Wide Web:
  8. http://developer.apple.com/bugreporter/
  9. }
  10. {
  11. Modified for use with Free Pascal
  12. Version 308
  13. Please report any bugs to <[email protected]>
  14. }
  15. {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
  16. {$mode macpas}
  17. {$modeswitch cblocks}
  18. {$packenum 1}
  19. {$macro on}
  20. {$inline on}
  21. {$calling mwpascal}
  22. unit SKSummary;
  23. interface
  24. {$setc UNIVERSAL_INTERFACES_VERSION := $0400}
  25. {$setc GAP_INTERFACES_VERSION := $0308}
  26. {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
  27. {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
  28. {$endc}
  29. {$ifc defined CPUPOWERPC and defined CPUI386}
  30. {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
  31. {$endc}
  32. {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
  33. {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
  34. {$endc}
  35. {$ifc not defined __ppc__ and defined CPUPOWERPC32}
  36. {$setc __ppc__ := 1}
  37. {$elsec}
  38. {$setc __ppc__ := 0}
  39. {$endc}
  40. {$ifc not defined __ppc64__ and defined CPUPOWERPC64}
  41. {$setc __ppc64__ := 1}
  42. {$elsec}
  43. {$setc __ppc64__ := 0}
  44. {$endc}
  45. {$ifc not defined __i386__ and defined CPUI386}
  46. {$setc __i386__ := 1}
  47. {$elsec}
  48. {$setc __i386__ := 0}
  49. {$endc}
  50. {$ifc not defined __x86_64__ and defined CPUX86_64}
  51. {$setc __x86_64__ := 1}
  52. {$elsec}
  53. {$setc __x86_64__ := 0}
  54. {$endc}
  55. {$ifc not defined __arm__ and defined CPUARM}
  56. {$setc __arm__ := 1}
  57. {$elsec}
  58. {$setc __arm__ := 0}
  59. {$endc}
  60. {$ifc not defined __arm64__ and defined CPUAARCH64}
  61. {$setc __arm64__ := 1}
  62. {$elsec}
  63. {$setc __arm64__ := 0}
  64. {$endc}
  65. {$ifc defined cpu64}
  66. {$setc __LP64__ := 1}
  67. {$elsec}
  68. {$setc __LP64__ := 0}
  69. {$endc}
  70. {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
  71. {$error Conflicting definitions for __ppc__ and __i386__}
  72. {$endc}
  73. {$ifc defined __ppc__ and __ppc__}
  74. {$setc TARGET_CPU_PPC := TRUE}
  75. {$setc TARGET_CPU_PPC64 := FALSE}
  76. {$setc TARGET_CPU_X86 := FALSE}
  77. {$setc TARGET_CPU_X86_64 := FALSE}
  78. {$setc TARGET_CPU_ARM := FALSE}
  79. {$setc TARGET_CPU_ARM64 := FALSE}
  80. {$setc TARGET_OS_MAC := TRUE}
  81. {$setc TARGET_OS_IPHONE := FALSE}
  82. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  83. {$setc TARGET_OS_EMBEDDED := FALSE}
  84. {$elifc defined __ppc64__ and __ppc64__}
  85. {$setc TARGET_CPU_PPC := FALSE}
  86. {$setc TARGET_CPU_PPC64 := TRUE}
  87. {$setc TARGET_CPU_X86 := FALSE}
  88. {$setc TARGET_CPU_X86_64 := FALSE}
  89. {$setc TARGET_CPU_ARM := FALSE}
  90. {$setc TARGET_CPU_ARM64 := FALSE}
  91. {$setc TARGET_OS_MAC := TRUE}
  92. {$setc TARGET_OS_IPHONE := FALSE}
  93. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  94. {$setc TARGET_OS_EMBEDDED := FALSE}
  95. {$elifc defined __i386__ and __i386__}
  96. {$setc TARGET_CPU_PPC := FALSE}
  97. {$setc TARGET_CPU_PPC64 := FALSE}
  98. {$setc TARGET_CPU_X86 := TRUE}
  99. {$setc TARGET_CPU_X86_64 := FALSE}
  100. {$setc TARGET_CPU_ARM := FALSE}
  101. {$setc TARGET_CPU_ARM64 := FALSE}
  102. {$ifc defined iphonesim}
  103. {$setc TARGET_OS_MAC := FALSE}
  104. {$setc TARGET_OS_IPHONE := TRUE}
  105. {$setc TARGET_IPHONE_SIMULATOR := TRUE}
  106. {$elsec}
  107. {$setc TARGET_OS_MAC := TRUE}
  108. {$setc TARGET_OS_IPHONE := FALSE}
  109. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  110. {$endc}
  111. {$setc TARGET_OS_EMBEDDED := FALSE}
  112. {$elifc defined __x86_64__ and __x86_64__}
  113. {$setc TARGET_CPU_PPC := FALSE}
  114. {$setc TARGET_CPU_PPC64 := FALSE}
  115. {$setc TARGET_CPU_X86 := FALSE}
  116. {$setc TARGET_CPU_X86_64 := TRUE}
  117. {$setc TARGET_CPU_ARM := FALSE}
  118. {$setc TARGET_CPU_ARM64 := FALSE}
  119. {$ifc defined iphonesim}
  120. {$setc TARGET_OS_MAC := FALSE}
  121. {$setc TARGET_OS_IPHONE := TRUE}
  122. {$setc TARGET_IPHONE_SIMULATOR := TRUE}
  123. {$elsec}
  124. {$setc TARGET_OS_MAC := TRUE}
  125. {$setc TARGET_OS_IPHONE := FALSE}
  126. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  127. {$endc}
  128. {$setc TARGET_OS_EMBEDDED := FALSE}
  129. {$elifc defined __arm__ and __arm__}
  130. {$setc TARGET_CPU_PPC := FALSE}
  131. {$setc TARGET_CPU_PPC64 := FALSE}
  132. {$setc TARGET_CPU_X86 := FALSE}
  133. {$setc TARGET_CPU_X86_64 := FALSE}
  134. {$setc TARGET_CPU_ARM := TRUE}
  135. {$setc TARGET_CPU_ARM64 := FALSE}
  136. {$setc TARGET_OS_MAC := FALSE}
  137. {$setc TARGET_OS_IPHONE := TRUE}
  138. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  139. {$setc TARGET_OS_EMBEDDED := TRUE}
  140. {$elifc defined __arm64__ and __arm64__}
  141. {$setc TARGET_CPU_PPC := FALSE}
  142. {$setc TARGET_CPU_PPC64 := FALSE}
  143. {$setc TARGET_CPU_X86 := FALSE}
  144. {$setc TARGET_CPU_X86_64 := FALSE}
  145. {$setc TARGET_CPU_ARM := FALSE}
  146. {$setc TARGET_CPU_ARM64 := TRUE}
  147. {$ifc defined ios}
  148. {$setc TARGET_OS_MAC := FALSE}
  149. {$setc TARGET_OS_IPHONE := TRUE}
  150. {$setc TARGET_OS_EMBEDDED := TRUE}
  151. {$elsec}
  152. {$setc TARGET_OS_MAC := TRUE}
  153. {$setc TARGET_OS_IPHONE := FALSE}
  154. {$setc TARGET_OS_EMBEDDED := FALSE}
  155. {$endc}
  156. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  157. {$elsec}
  158. {$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ nor __arm64__ is defined.}
  159. {$endc}
  160. {$ifc defined __LP64__ and __LP64__ }
  161. {$setc TARGET_CPU_64 := TRUE}
  162. {$elsec}
  163. {$setc TARGET_CPU_64 := FALSE}
  164. {$endc}
  165. {$ifc defined FPC_BIG_ENDIAN}
  166. {$setc TARGET_RT_BIG_ENDIAN := TRUE}
  167. {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
  168. {$elifc defined FPC_LITTLE_ENDIAN}
  169. {$setc TARGET_RT_BIG_ENDIAN := FALSE}
  170. {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
  171. {$elsec}
  172. {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
  173. {$endc}
  174. {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
  175. {$setc CALL_NOT_IN_CARBON := FALSE}
  176. {$setc OLDROUTINENAMES := FALSE}
  177. {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
  178. {$setc OPAQUE_UPP_TYPES := TRUE}
  179. {$setc OTCARBONAPPLICATION := TRUE}
  180. {$setc OTKERNEL := FALSE}
  181. {$setc PM_USE_SESSION_APIS := TRUE}
  182. {$setc TARGET_API_MAC_CARBON := TRUE}
  183. {$setc TARGET_API_MAC_OS8 := FALSE}
  184. {$setc TARGET_API_MAC_OSX := TRUE}
  185. {$setc TARGET_CARBON := TRUE}
  186. {$setc TARGET_CPU_68K := FALSE}
  187. {$setc TARGET_CPU_MIPS := FALSE}
  188. {$setc TARGET_CPU_SPARC := FALSE}
  189. {$setc TARGET_OS_UNIX := FALSE}
  190. {$setc TARGET_OS_WIN32 := FALSE}
  191. {$setc TARGET_RT_MAC_68881 := FALSE}
  192. {$setc TARGET_RT_MAC_CFM := FALSE}
  193. {$setc TARGET_RT_MAC_MACHO := TRUE}
  194. {$setc TYPED_FUNCTION_POINTERS := TRUE}
  195. {$setc TYPE_BOOL := FALSE}
  196. {$setc TYPE_EXTENDED := FALSE}
  197. {$setc TYPE_LONGLONG := TRUE}
  198. uses MacTypes,CFBase,CFString;
  199. {$endc} {not MACOSALLINCLUDE}
  200. {$ALIGN POWER}
  201. {$ifc TARGET_OS_MAC}
  202. {
  203. * Summarization API
  204. }
  205. {
  206. * SKSummaryRef
  207. *
  208. * Summary:
  209. * An opaque data type representing summary information.
  210. *
  211. * Discussion:
  212. * A summary reference contains summary information, from which
  213. * summary text can be obtained.
  214. }
  215. type
  216. SKSummaryRef = ^__SKSummary; { an opaque type }
  217. __SKSummary = record end;
  218. SKSummaryRefPtr = ^SKSummaryRef;
  219. {
  220. * SKSummaryGetTypeID()
  221. *
  222. * Summary:
  223. * Returns the type identifier of the SKSummaryRef type.
  224. *
  225. * Result:
  226. * Returns a CFTypeID object, or <tt>NULL</tt> on failure.
  227. *
  228. * Availability:
  229. * Mac OS X: in version 10.4 and later in CoreServices.framework
  230. * CarbonLib: not available
  231. * Non-Carbon CFM: not available
  232. }
  233. function SKSummaryGetTypeID: CFTypeID; external name '_SKSummaryGetTypeID';
  234. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  235. {
  236. * SKSummaryCreateWithString()
  237. *
  238. * Summary:
  239. * Creates a summary reference with text string.
  240. *
  241. * Discussion:
  242. * Creates a summary reference that pre-computes what is needed for
  243. * fast summarization. This function must be balanced with a call at
  244. * a later time to CFRelease.
  245. *
  246. * Parameters:
  247. *
  248. * inString:
  249. * the text string.
  250. *
  251. * Result:
  252. * Returns a summary reference, or <tt>NULL</tt> on failure.
  253. *
  254. * Availability:
  255. * Mac OS X: in version 10.4 and later in CoreServices.framework
  256. * CarbonLib: not available
  257. * Non-Carbon CFM: not available
  258. }
  259. function SKSummaryCreateWithString( inString: CFStringRef ): SKSummaryRef; external name '_SKSummaryCreateWithString';
  260. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  261. {
  262. * SKSummaryGetSentenceCount()
  263. *
  264. * Summary:
  265. * Gets the number of sentences available.
  266. *
  267. * Parameters:
  268. *
  269. * summary:
  270. * A reference to the summary object
  271. *
  272. * Availability:
  273. * Mac OS X: in version 10.4 and later in CoreServices.framework
  274. * CarbonLib: not available
  275. * Non-Carbon CFM: not available
  276. }
  277. function SKSummaryGetSentenceCount( summary: SKSummaryRef ): CFIndex; external name '_SKSummaryGetSentenceCount';
  278. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  279. {
  280. * SKSummaryGetParagraphCount()
  281. *
  282. * Summary:
  283. * Gets the number of paragraphs available.
  284. *
  285. * Parameters:
  286. *
  287. * summary:
  288. * A reference to the summary object
  289. *
  290. * Availability:
  291. * Mac OS X: in version 10.4 and later in CoreServices.framework
  292. * CarbonLib: not available
  293. * Non-Carbon CFM: not available
  294. }
  295. function SKSummaryGetParagraphCount( summary: SKSummaryRef ): CFIndex; external name '_SKSummaryGetParagraphCount';
  296. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  297. {
  298. * SKSummaryCopySentenceAtIndex()
  299. *
  300. * Summary:
  301. * Gets the ith sentence from the original text.
  302. *
  303. * Parameters:
  304. *
  305. * summary:
  306. * A reference to the summary object
  307. *
  308. * i:
  309. * zero-based index
  310. *
  311. * Availability:
  312. * Mac OS X: in version 10.4 and later in CoreServices.framework
  313. * CarbonLib: not available
  314. * Non-Carbon CFM: not available
  315. }
  316. function SKSummaryCopySentenceAtIndex( summary: SKSummaryRef; i: CFIndex ): CFStringRef; external name '_SKSummaryCopySentenceAtIndex';
  317. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  318. {
  319. * SKSummaryCopyParagraphAtIndex()
  320. *
  321. * Summary:
  322. * Gets the ith paragraph from the original text.
  323. *
  324. * Parameters:
  325. *
  326. * summary:
  327. * A reference to the summary object
  328. *
  329. * i:
  330. * zero-based index
  331. *
  332. * Availability:
  333. * Mac OS X: in version 10.4 and later in CoreServices.framework
  334. * CarbonLib: not available
  335. * Non-Carbon CFM: not available
  336. }
  337. function SKSummaryCopyParagraphAtIndex( summary: SKSummaryRef; i: CFIndex ): CFStringRef; external name '_SKSummaryCopyParagraphAtIndex';
  338. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  339. {
  340. * SKSummaryCopySentenceSummaryString()
  341. *
  342. * Summary:
  343. * Gets a summary string that includes at most the requested number
  344. * of sentences.
  345. *
  346. * Parameters:
  347. *
  348. * summary:
  349. * A reference to the summary object
  350. *
  351. * numSentences:
  352. * the number of sentences desired
  353. *
  354. * Availability:
  355. * Mac OS X: in version 10.4 and later in CoreServices.framework
  356. * CarbonLib: not available
  357. * Non-Carbon CFM: not available
  358. }
  359. function SKSummaryCopySentenceSummaryString( summary: SKSummaryRef; numSentences: CFIndex ): CFStringRef; external name '_SKSummaryCopySentenceSummaryString';
  360. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  361. {
  362. * SKSummaryCopyParagraphSummaryString()
  363. *
  364. * Summary:
  365. * Gets a summary string that includes at most the requested number
  366. * of paragraphs.
  367. *
  368. * Parameters:
  369. *
  370. * summary:
  371. * A reference to the summary object
  372. *
  373. * numParagraphs:
  374. * the number of paragraphs desired
  375. *
  376. * Availability:
  377. * Mac OS X: in version 10.4 and later in CoreServices.framework
  378. * CarbonLib: not available
  379. * Non-Carbon CFM: not available
  380. }
  381. function SKSummaryCopyParagraphSummaryString( summary: SKSummaryRef; numParagraphs: CFIndex ): CFStringRef; external name '_SKSummaryCopyParagraphSummaryString';
  382. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  383. {
  384. * SKSummaryGetSentenceSummaryInfo()
  385. *
  386. * Summary:
  387. * Get detailed information about a sentence-based summary. Useful
  388. * for constructing your own summary string. Arrays must be of size
  389. * numSentences or they can be nil. Return value is the number of
  390. * sentences actually returned. Sentences are returned in text order
  391. * via outSentenceIndexOfSentences.
  392. *
  393. * Parameters:
  394. *
  395. * summary:
  396. * A reference to the summary object
  397. *
  398. * numSentencesInSummary:
  399. * the number of sentences desired
  400. *
  401. * outRankOrderOfSentences:
  402. * array for returning the rank of each sentence; most important
  403. * sentence is rank 1
  404. *
  405. * outSentenceIndexOfSentences:
  406. * array for returning the index of each sentence; use
  407. * SKSummaryCopySentenceAtIndex to get sentence
  408. *
  409. * outParagraphIndexOfSentences:
  410. * array for returning the index of the paragraph in which
  411. * sentence occured
  412. *
  413. * Availability:
  414. * Mac OS X: in version 10.4 and later in CoreServices.framework
  415. * CarbonLib: not available
  416. * Non-Carbon CFM: not available
  417. }
  418. function SKSummaryGetSentenceSummaryInfo( summary: SKSummaryRef; numSentencesInSummary: CFIndex; outRankOrderOfSentences: CFIndexPtr { array }; outSentenceIndexOfSentences: CFIndexPtr { array }; outParagraphIndexOfSentences: CFIndexPtr { array } ): CFIndex; external name '_SKSummaryGetSentenceSummaryInfo';
  419. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  420. {
  421. * SKSummaryGetParagraphSummaryInfo()
  422. *
  423. * Summary:
  424. * Get detailed information about a paragraph-based summary. Useful
  425. * for constructing your own summary string. Arrays must be of size
  426. * numParagraphs or they can be nil. Return value is the number of
  427. * paragraphs actually returned. Paragraphs are returned in text
  428. * order via outParagraphIndexOfParagraphs.
  429. *
  430. * Parameters:
  431. *
  432. * summary:
  433. * A reference to the summary object
  434. *
  435. * numParagraphsInSummary:
  436. * the number of sentences desired
  437. *
  438. * outRankOrderOfParagraphs:
  439. * array for returning the rank of each paragraph; most important
  440. * paragraph is rank 1
  441. *
  442. * outParagraphIndexOfParagraphs:
  443. * array for returning the index of each paragraph; use
  444. * SKSummaryCopyParagraphAtIndex to get paragraph
  445. *
  446. * Availability:
  447. * Mac OS X: in version 10.4 and later in CoreServices.framework
  448. * CarbonLib: not available
  449. * Non-Carbon CFM: not available
  450. }
  451. function SKSummaryGetParagraphSummaryInfo( summary: SKSummaryRef; numParagraphsInSummary: CFIndex; outRankOrderOfParagraphs: CFIndexPtr { array }; outParagraphIndexOfParagraphs: CFIndexPtr {array} ): CFIndex; external name '_SKSummaryGetParagraphSummaryInfo';
  452. (* AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER *)
  453. {$endc} {TARGET_OS_MAC}
  454. {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
  455. end.
  456. {$endc} {not MACOSALLINCLUDE}