1 {
2 File: LSOpen.h
3
4 Contains: Public interfaces for LaunchServices.framework
5
6 Copyright: (c) 2003-2012 by Apple Inc. All rights reserved.
7
8 Bugs?: For bug reports, consult the following page on
9 the World Wide Web:
10
11 http://bugs.freepascal.org
12 }
13
14
15 {
16 Modified for use with Free Pascal
17 Version 308
18 Please report any bugs to <gpc@microbizz.nl>
19 }
20
21 {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
22 {$mode macpas}
23 {$modeswitch cblocks}
24 {$packenum 1}
25 {$macro on}
26 {$inline on}
27 {$calling mwpascal}
28
29 unit LSOpen;
30 interface
31 {$setc UNIVERSAL_INTERFACES_VERSION := $0400}
32 {$setc GAP_INTERFACES_VERSION := $0308}
33
34 {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
35 {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
36 {$endc}
37
38 {$ifc defined CPUPOWERPC and defined CPUI386}
39 {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
40 {$endc}
41 {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
42 {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
43 {$endc}
44
45 {$ifc not defined __ppc__ and defined CPUPOWERPC32}
46 {$setc __ppc__ := 1}
47 {$elsec}
48 {$setc __ppc__ := 0}
49 {$endc}
50 {$ifc not defined __ppc64__ and defined CPUPOWERPC64}
51 {$setc __ppc64__ := 1}
52 {$elsec}
53 {$setc __ppc64__ := 0}
54 {$endc}
55 {$ifc not defined __i386__ and defined CPUI386}
56 {$setc __i386__ := 1}
57 {$elsec}
58 {$setc __i386__ := 0}
59 {$endc}
60 {$ifc not defined __x86_64__ and defined CPUX86_64}
61 {$setc __x86_64__ := 1}
62 {$elsec}
63 {$setc __x86_64__ := 0}
64 {$endc}
65 {$ifc not defined __arm__ and defined CPUARM}
66 {$setc __arm__ := 1}
67 {$elsec}
68 {$setc __arm__ := 0}
69 {$endc}
70 {$ifc not defined __arm64__ and defined CPUAARCH64}
71 {$setc __arm64__ := 1}
72 {$elsec}
73 {$setc __arm64__ := 0}
74 {$endc}
75
76 {$ifc defined cpu64}
77 {$setc __LP64__ := 1}
78 {$elsec}
79 {$setc __LP64__ := 0}
80 {$endc}
81
82
83 {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
84 {$error Conflicting definitions for __ppc__ and __i386__}
85 {$endc}
86
87 {$ifc defined __ppc__ and __ppc__}
88 {$setc TARGET_CPU_PPC := TRUE}
89 {$setc TARGET_CPU_PPC64 := FALSE}
90 {$setc TARGET_CPU_X86 := FALSE}
91 {$setc TARGET_CPU_X86_64 := FALSE}
92 {$setc TARGET_CPU_ARM := FALSE}
93 {$setc TARGET_CPU_ARM64 := FALSE}
94 {$setc TARGET_OS_MAC := TRUE}
95 {$setc TARGET_OS_IPHONE := FALSE}
96 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
97 {$setc TARGET_OS_EMBEDDED := FALSE}
98 {$elifc defined __ppc64__ and __ppc64__}
99 {$setc TARGET_CPU_PPC := FALSE}
100 {$setc TARGET_CPU_PPC64 := TRUE}
101 {$setc TARGET_CPU_X86 := FALSE}
102 {$setc TARGET_CPU_X86_64 := FALSE}
103 {$setc TARGET_CPU_ARM := FALSE}
104 {$setc TARGET_CPU_ARM64 := FALSE}
105 {$setc TARGET_OS_MAC := TRUE}
106 {$setc TARGET_OS_IPHONE := FALSE}
107 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
108 {$setc TARGET_OS_EMBEDDED := FALSE}
109 {$elifc defined __i386__ and __i386__}
110 {$setc TARGET_CPU_PPC := FALSE}
111 {$setc TARGET_CPU_PPC64 := FALSE}
112 {$setc TARGET_CPU_X86 := TRUE}
113 {$setc TARGET_CPU_X86_64 := FALSE}
114 {$setc TARGET_CPU_ARM := FALSE}
115 {$setc TARGET_CPU_ARM64 := FALSE}
116 {$ifc defined iphonesim}
117 {$setc TARGET_OS_MAC := FALSE}
118 {$setc TARGET_OS_IPHONE := TRUE}
119 {$setc TARGET_IPHONE_SIMULATOR := TRUE}
120 {$elsec}
121 {$setc TARGET_OS_MAC := TRUE}
122 {$setc TARGET_OS_IPHONE := FALSE}
123 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
124 {$endc}
125 {$setc TARGET_OS_EMBEDDED := FALSE}
126 {$elifc defined __x86_64__ and __x86_64__}
127 {$setc TARGET_CPU_PPC := FALSE}
128 {$setc TARGET_CPU_PPC64 := FALSE}
129 {$setc TARGET_CPU_X86 := FALSE}
130 {$setc TARGET_CPU_X86_64 := TRUE}
131 {$setc TARGET_CPU_ARM := FALSE}
132 {$setc TARGET_CPU_ARM64 := FALSE}
133 {$ifc defined iphonesim}
134 {$setc TARGET_OS_MAC := FALSE}
135 {$setc TARGET_OS_IPHONE := TRUE}
136 {$setc TARGET_IPHONE_SIMULATOR := TRUE}
137 {$elsec}
138 {$setc TARGET_OS_MAC := TRUE}
139 {$setc TARGET_OS_IPHONE := FALSE}
140 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
141 {$endc}
142 {$setc TARGET_OS_EMBEDDED := FALSE}
143 {$elifc defined __arm__ and __arm__}
144 {$setc TARGET_CPU_PPC := FALSE}
145 {$setc TARGET_CPU_PPC64 := FALSE}
146 {$setc TARGET_CPU_X86 := FALSE}
147 {$setc TARGET_CPU_X86_64 := FALSE}
148 {$setc TARGET_CPU_ARM := TRUE}
149 {$setc TARGET_CPU_ARM64 := FALSE}
150 {$setc TARGET_OS_MAC := FALSE}
151 {$setc TARGET_OS_IPHONE := TRUE}
152 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
153 {$setc TARGET_OS_EMBEDDED := TRUE}
154 {$elifc defined __arm64__ and __arm64__}
155 {$setc TARGET_CPU_PPC := FALSE}
156 {$setc TARGET_CPU_PPC64 := FALSE}
157 {$setc TARGET_CPU_X86 := FALSE}
158 {$setc TARGET_CPU_X86_64 := FALSE}
159 {$setc TARGET_CPU_ARM := FALSE}
160 {$setc TARGET_CPU_ARM64 := TRUE}
161 {$ifc defined ios}
162 {$setc TARGET_OS_MAC := FALSE}
163 {$setc TARGET_OS_IPHONE := TRUE}
164 {$setc TARGET_OS_EMBEDDED := TRUE}
165 {$elsec}
166 {$setc TARGET_OS_MAC := TRUE}
167 {$setc TARGET_OS_IPHONE := FALSE}
168 {$setc TARGET_OS_EMBEDDED := FALSE}
169 {$endc}
170 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
171 {$elsec}
172 {$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ nor __arm64__ is defined.}
173 {$endc}
174
175 {$ifc defined __LP64__ and __LP64__ }
176 {$setc TARGET_CPU_64 := TRUE}
177 {$elsec}
178 {$setc TARGET_CPU_64 := FALSE}
179 {$endc}
180
181 {$ifc defined FPC_BIG_ENDIAN}
182 {$setc TARGET_RT_BIG_ENDIAN := TRUE}
183 {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
184 {$elifc defined FPC_LITTLE_ENDIAN}
185 {$setc TARGET_RT_BIG_ENDIAN := FALSE}
186 {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
187 {$elsec}
188 {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
189 {$endc}
190 {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
191 {$setc CALL_NOT_IN_CARBON := FALSE}
192 {$setc OLDROUTINENAMES := FALSE}
193 {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
194 {$setc OPAQUE_UPP_TYPES := TRUE}
195 {$setc OTCARBONAPPLICATION := TRUE}
196 {$setc OTKERNEL := FALSE}
197 {$setc PM_USE_SESSION_APIS := TRUE}
198 {$setc TARGET_API_MAC_CARBON := TRUE}
199 {$setc TARGET_API_MAC_OS8 := FALSE}
200 {$setc TARGET_API_MAC_OSX := TRUE}
201 {$setc TARGET_CARBON := TRUE}
202 {$setc TARGET_CPU_68K := FALSE}
203 {$setc TARGET_CPU_MIPS := FALSE}
204 {$setc TARGET_CPU_SPARC := FALSE}
205 {$setc TARGET_OS_UNIX := FALSE}
206 {$setc TARGET_OS_WIN32 := FALSE}
207 {$setc TARGET_RT_MAC_68881 := FALSE}
208 {$setc TARGET_RT_MAC_CFM := FALSE}
209 {$setc TARGET_RT_MAC_MACHO := TRUE}
210 {$setc TYPED_FUNCTION_POINTERS := TRUE}
211 {$setc TYPE_BOOL := FALSE}
212 {$setc TYPE_EXTENDED := FALSE}
213 {$setc TYPE_LONGLONG := TRUE}
214 uses MacTypes,CFBase,CFArray,CFDictionary,CFURL,Files,Processes,LSInfo,AEDataModel;
215 {$endc} {not MACOSALLINCLUDE}
216
217
218
219 {$ifc TARGET_OS_MAC}
220
221 {$ALIGN MAC68K}
222
223 { ======================================================================================================== }
224 { LaunchServices Type & Constants }
225 { ======================================================================================================== }
226
227 type
228 LSLaunchFlags = OptionBits;
229 const
230 kLSLaunchDefaults = $00000001; { Defaults = open, async, use Info.plist, start Classic}
231 kLSLaunchAndPrint = $00000002; { Print items instead of open them}
232 kLSLaunchReserved2 = $00000004;
233 kLSLaunchReserved3 = $00000008;
234 kLSLaunchReserved4 = $00000010;
235 kLSLaunchReserved5 = $00000020;
236 kLSLaunchAndDisplayErrors = $00000040; { Report launch/open failures in the UI}
237 kLSLaunchInhibitBGOnly = $00000080; { Causes launch to fail if target is background-only.}
238 kLSLaunchDontAddToRecents = $00000100; { Do not add app or documents to recents menus.}
239 kLSLaunchDontSwitch = $00000200; { Do not bring new app to the foreground.}
240 kLSLaunchNoParams = $00000800; { Use Info.plist to determine launch parameters}
241 kLSLaunchAsync = $00010000; { Asynchronous launch; return as soon as the app starts launching.}
242 kLSLaunchStartClassic = $00020000; { Start up Classic environment if required for app.}
243 kLSLaunchInClassic = $00040000; { Force app to launch in Classic environment.}
244 kLSLaunchNewInstance = $00080000; { Instantiate app even if it is already running.}
245 kLSLaunchAndHide = $00100000; { Send child a "hide" request as soon as it checks in.}
246 kLSLaunchAndHideOthers = $00200000; { Hide all other apps when the app checks in.}
247 kLSLaunchHasUntrustedContents = $00400000; { Mark items to be opened as untrusted}
248
249 type
250 LSLaunchFSRefSpec = record
251 appRef: {const} FSRefPtr; { app to use, can be NULL}
252 numDocs: ItemCount; { items to open/print, can be zero}
253 itemRefs: {const} FSRefPtr; { array of FSRefs, ignored when numDocs is zero}
254 passThruParams: {const} AEDescPtr; { passed untouched to application as optional event parameter, }
255 { with keyword keyAEPropData (can be NULL)}
256 launchFlags: LSLaunchFlags;
257 asyncRefCon: UnivPtr; { used if you register for app birth/death notification}
258 end;
259 type
260 LSLaunchURLSpec = record
261 appURL: CFURLRef; { app to use, can be NULL}
262 itemURLs: CFArrayRef; { items to open/print, can be NULL}
263 passThruParams: {const} AEDescPtr; { passed untouched to application as optional parameter (can be NULL)}
264 launchFlags: LSLaunchFlags;
265 asyncRefCon: UnivPtr; { used if you register for app birth/death notification}
266 end;
267
268
269 { ======================================================================================================== }
270 { LaunchServices API }
271 { ======================================================================================================== }
272
273 {
274 * LSOpenFSRef()
275 *
276 * Summary:
277 * Open an application, document, or folder.
278 *
279 * Discussion:
280 * Opens applications, documents, and folders. Applications are
281 * opened via an 'oapp' or 'rapp' event. Documents are opened in
282 * their user-overridden or default applications as appropriate.
283 * Folders are opened in the Finder. Use the more specific
284 * LSOpenFromRefSpec for more control over launching.
285 *
286 * Mac OS X threading:
287 * Thread safe since version 10.2
288 *
289 * Parameters:
290 *
291 * inRef:
292 * The FSRef of the item to launch.
293 *
294 * outLaunchedRef:
295 * The FSRef of the item actually launched. For inRefs that are
296 * documents, outLaunchedRef will be the application used to
297 * launch the document. Can be NULL.
298 *
299 * Availability:
300 * Mac OS X: in version 10.0 and later in CoreServices.framework
301 * CarbonLib: not available in CarbonLib 1.x
302 * Non-Carbon CFM: not available
303 }
LSOpenFSRefnull304 function LSOpenFSRef( const (*var*) inRef: FSRef; outLaunchedRef: FSRefPtr { can be NULL } ): OSStatus; external name '_LSOpenFSRef';
305 (* __OSX_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_NA) *)
306
307
308 {
309 * LSOpenCFURLRef()
310 *
311 * Summary:
312 * Open an application, document, or folder.
313 *
314 * Discussion:
315 * Opens applications, documents, and folders. Applications are
316 * opened via an 'oapp' or 'rapp' event. Documents are opened in
317 * their user-overridden or default applications as appropriate.
318 * Folders are opened in the Finder. Use the more specific
319 * LSOpenFromURLSpec for more control over launching.
320 *
321 * Mac OS X threading:
322 * Thread safe since version 10.2
323 *
324 * Parameters:
325 *
326 * inURL:
327 * The CFURLRef of the item to launch.
328 *
329 * outLaunchedURL:
330 * The CFURLRef of the item actually launched. For inURLs that are
331 * documents, outLaunchedURL will be the application used to
332 * launch the document. Can be NULL. THIS FUNCTION, DESPITE ITS
333 * NAME, RETAINS THE URL REFERENCE ON BEHALF OF THE CALLER. THE
334 * CALLER MUST EVENTUALLY RELEASE THE RETURNED URL REFERENCE.
335 *
336 * Availability:
337 * Mac OS X: in version 10.0 and later in CoreServices.framework
338 * CarbonLib: not available in CarbonLib 1.x
339 * Non-Carbon CFM: not available
340 }
LSOpenCFURLRefnull341 function LSOpenCFURLRef( inURL: CFURLRef; outLaunchedURL: CFURLRefPtr { can be NULL } ): OSStatus; external name '_LSOpenCFURLRef';
342 (* __OSX_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_NA) *)
343
344
345 {
346 * LSOpenFromRefSpec()
347 *
348 * Summary:
349 * Opens an application or one or more documents or folders.
350 *
351 * Discussion:
352 * Opens applications, documents, and folders.
353 *
354 * Mac OS X threading:
355 * Thread safe since version 10.2
356 *
357 * Parameters:
358 *
359 * inLaunchSpec:
360 * The specification of what to launch and how to launch it.
361 *
362 * outLaunchedRef:
363 * The FSRef of the item actually launched. For inRefs that are
364 * documents, outLaunchedRef will be the application used to
365 * launch the document. Can be NULL.
366 *
367 * Availability:
368 * Mac OS X: in version 10.0 and later in CoreServices.framework
369 * CarbonLib: not available in CarbonLib 1.x
370 * Non-Carbon CFM: not available
371 }
LSOpenFromRefSpecnull372 function LSOpenFromRefSpec( const (*var*) inLaunchSpec: LSLaunchFSRefSpec; outLaunchedRef: FSRefPtr { can be NULL } ): OSStatus; external name '_LSOpenFromRefSpec';
373 (* __OSX_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_NA) *)
374
375
376 {
377 * LSOpenFromURLSpec()
378 *
379 * Summary:
380 * Opens an application or one or more documents or folders.
381 *
382 * Discussion:
383 * Opens applications, documents, and folders.
384 *
385 * Mac OS X threading:
386 * Thread safe since version 10.2
387 *
388 * Parameters:
389 *
390 * inLaunchSpec:
391 * The specification of what to launch and how to launch it.
392 *
393 * outLaunchedURL:
394 * The CFURLRef of the item actually launched. For inURLs that are
395 * documents, outLaunchedURL will be the application used to
396 * launch the document. Can be NULL. THIS FUNCTION, DESPITE ITS
397 * NAME, RETAINS THE URL REFERENCE ON BEHALF OF THE CALLER. THE
398 * CALLER MUST EVENTUALLY RELEASE THE RETURNED URL REFERENCE.
399 *
400 * Availability:
401 * Mac OS X: in version 10.0 and later in CoreServices.framework
402 * CarbonLib: not available in CarbonLib 1.x
403 * Non-Carbon CFM: not available
404 }
LSOpenFromURLSpecnull405 function LSOpenFromURLSpec( const (*var*) inLaunchSpec: LSLaunchURLSpec; outLaunchedURL: CFURLRefPtr { can be NULL } ): OSStatus; external name '_LSOpenFromURLSpec';
406 (* __OSX_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_NA) *)
407
408
409 { ================================================================================== }
410 { API for opening with a specific role and additional parameters }
411 { ================================================================================== }
412
413 {
414 * LSApplicationParameters
415 *
416 * This structure is used by the new LSOpen functions to specify
417 * an application, launch flags, and additional parameters
418 * controlling how an application is launched.
419 *
420 * A version field allows the structure to be extended in
421 * future releases.
422 }
423 type
424 LSApplicationParameters = record
425 version: CFIndex; { This must be set to zero by the client }
426 flags: LSLaunchFlags; { See the LSLaunchFlags enum }
427 application: {const} FSRefPtr; { The application to open (and possibly handle documents/URLs) }
428 asyncLaunchRefCon: UnivPtr; { The client refCon which will appear in subsequent launch notifications }
429 environment: CFDictionaryRef; { Environment variables to set in the launched process }
430 { (a dictionary of CFStringRef keys and values). Can be NULL. }
431 argv: CFArrayRef; { Note: argv is ignored on 10.4. On 10.5 and later, the array elements }
432 { (which must be CFStringRefs) are passed as arguments to main() in the launched process. }
433 initialEvent: AppleEventPtr; { The first Apple Event to be sent to the launched process. Can be NULL. }
434 end;
435 type
436 LSApplicationParametersPtr = ^LSApplicationParameters;
437
438 {
439 * LSOpenApplication()
440 *
441 * LSOpenApplication launches one application. This function
442 * is an updated alternative to the Process Manager's LaunchApplication().
443 *
444 * Launch arguments are specified in the inAppParams argument, which
445 * must be supplied. If the application is already running in the current
446 * session, it will be made the front process (unless the kLSLaunchNewInstance
447 * flag is used, which will always cause a new process to be created).
448 *
449 * If outPSN is not NULL, the structure it points to will contain the process
450 * serial number of the launched (or activated) process. Note that for
451 * asynchronous launches, the application may not have finished launching
452 * when this function returns.
453 }
454 {
455 * LSOpenApplication()
456 *
457 * Mac OS X threading:
458 * Thread safe since version 10.4
459 *
460 * Availability:
461 * Mac OS X: in version 10.4 and later in CoreServices.framework
462 * CarbonLib: not available
463 * Non-Carbon CFM: not available
464 }
LSOpenApplicationnull465 function LSOpenApplication( const (*var*) appParams: LSApplicationParameters; outPSN: ProcessSerialNumberPtr { can be NULL } ): OSStatus; external name '_LSOpenApplication';
466 (* __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA) *)
467
468
469 {
470 * LSOpenItemsWithRole()
471 *
472 * Opens the items specified as an array of FSRefs with the role
473 * specified by inRoleMask. If the role doesn't matter, use kLSRolesAll.
474 *
475 * Clients can optionally specify the application and launch parameters
476 * in inAppParams. If a specific application is given in inAppParams, then
477 * inRoleMask is ignored and the application is launched (if necessary).
478 * Otherwise, an application will be selected which can handle each input
479 * item in the specified role(s).
480 *
481 * Each launched application will receive an 'odoc' Apple Event specifying
482 * which items are to be opened.
483 *
484 * Note that if the input items array contains any applications, this
485 * function will not launch them unless the kLSRolesShell bit is set
486 * in the inRolesMask (in which case the application is its own shell).
487 *
488 * The optional inAEParam argument specifies an AEDesc to be attached to
489 * the Apple Event(s) generated by Launch Services with the specified
490 * AEKeyword.
491 *
492 * If not NULL, the outPSNs buffer will be filled with the PSN which
493 * was used to open each item at the same index of the input FSRef array. The
494 * PSN capacity of the output buffer is specified by inMaxPSNCount.
495 }
496 {
497 * LSOpenItemsWithRole()
498 *
499 * Mac OS X threading:
500 * Thread safe since version 10.4
501 *
502 * Availability:
503 * Mac OS X: in version 10.4 and later in CoreServices.framework
504 * CarbonLib: not available
505 * Non-Carbon CFM: not available
506 }
LSOpenItemsWithRolenull507 function LSOpenItemsWithRole( const (*var*) inItems: FSRef; inItemCount: CFIndex; inRole: LSRolesMask; {const} inAEParam: AEKeyDescPtr { can be NULL }; {const} inAppParams: LSApplicationParametersPtr { can be NULL }; outPSNs: ProcessSerialNumberPtr { can be NULL }; inMaxPSNCount: CFIndex ): OSStatus; external name '_LSOpenItemsWithRole';
508 (* __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA) *)
509
510
511 {
512 * LSOpenURLsWithRole()
513 *
514 * Opens the URLs specified by inURLs (an array of CFURLRefs) with the role
515 * specified by inRoleMask. If the role doesn't matter, use kLSRolesAll.
516 *
517 * Clients can optionally specify the application and launch parameters
518 * in inAppParams. If a specific application is given in inAppParams, then
519 * inRoleMask is ignored and the application is launched (if necessary).
520 * Otherwise, an application will be selected which can handle each input
521 * URL in at least one of the specified role(s).
522 *
523 * Each launched application will receive one or more 'GURL' Apple Event
524 * specifying the URLs to be opened. Clients may also pass file URLs, which
525 * will be interpreted as file system items and opened in the manner of
526 * LSOpenItemsWithRole (i.e., a handler will be selected base on the item's
527 * metadata).
528 *
529 * Note that if the input array contains any application URLs, this
530 * function will not launch them unless the kLSRolesShell bit is set
531 * in the inRolesMask (in which case the application is its own shell).
532 *
533 * The optional inAEParam argument specifies an AEDesc to be attached to
534 * the Apple Event(s) generated by Launch Services with the specified
535 * AEKeyword.
536 *
537 * If not NULL, the outPSNs buffer will be filled with the PSN which
538 * was used to open each URL at the same index of the input URL array. The
539 * PSN capacity of the output buffer is specified by inMaxPSNCount.
540 }
541 {
542 * LSOpenURLsWithRole()
543 *
544 * Mac OS X threading:
545 * Thread safe since version 10.4
546 *
547 * Availability:
548 * Mac OS X: in version 10.4 and later in CoreServices.framework
549 * CarbonLib: not available
550 * Non-Carbon CFM: not available
551 }
LSOpenURLsWithRolenull552 function LSOpenURLsWithRole( inURLs: CFArrayRef; inRole: LSRolesMask; {const} inAEParam: AEKeyDescPtr { can be NULL }; {const} inAppParams: LSApplicationParametersPtr { can be NULL }; outPSNs: ProcessSerialNumberPtr { can be NULL }; inMaxPSNCount: CFIndex ): OSStatus; external name '_LSOpenURLsWithRole';
553 (* __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA) *)
554
555
556 {$endc} {TARGET_OS_MAC}
557
558 {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
559
560 end.
561 {$endc} {not MACOSALLINCLUDE}
562