---
title: "LSOpenItemsWithRole(_:_:_:_:_:_:_:)"
framework: coreservices
role: symbol
role_heading: Function
path: coreservices/1449783-lsopenitemswithrole
---

# LSOpenItemsWithRole(_:_:_:_:_:_:_:)

Opens items with an array of file-system references with a specified role.

## Declaration

```swift
func LSOpenItemsWithRole(_ inItems: UnsafePointer<FSRef>!, _ inItemCount: CFIndex, _ inRole: LSRolesMask, _ inAEParam: UnsafePointer<AEKeyDesc>!, _ inAppParams: UnsafePointer<LSApplicationParameters>!, _ outPSNs: UnsafeMutablePointer<ProcessSerialNumber>!, _ inMaxPSNCount: CFIndex) -> OSStatus
```

## Parameters

- `inItems`: An array of values of type FSRef.
- `inItemCount`: The number of items specified in inItems.
- `inRole`: A value of type LSRolesMask specifying one or more roles. If the role doesn’t matter, use kLSRolesAll. For possible values, see doc://com.apple.documentation/documentation/coreservices/lsrolesmask. If the inAppParams parameter is not NULL, this parameter is ignored.
- `inAEParam`: An AEKeyDesc that is to be attached to the Apple Event(s) generated by Launch Services with the specified AEKeyword. This parameter can be NULL.
- `inAppParams`: An doc://com.apple.documentation/documentation/coreservices/lsapplicationparameters structure specifying the application to launch and its launch parameters, in which case the inRole parameter is ignored. This parameter can be NULL, in which case an application is selected that can handle each input item in at least one of the roles specified by the inRole parameter.
- `outPSNs`: On input, a pointer to a caller-allocated buffer or NULL if you don’t want to receive process serial number (PSN) information. If not NULL on input, on return, the buffer contains at each index the PSN that was used to open the item at the same index of the input item array (inItems).
- `inMaxPSNCount`: The maximum number of PSNs that the buffer pointed to by outPSNs can hold.

## Return Value

Return Value A result code; see Result Codes.

## Discussion

Discussion This function opens the specified items with the specified role. You can optionally specify the application and launch parameters in the inAppParams parameter. If an application is specified in the inAppParams parameter, the inRole parameter is ignored and the application is launched (if necessary). Each application (regardless of whether it is launched or already running) receives an 'odoc' Apple Event specifying the items that are to be opened. If the inItems array contains any applications, this function launches them only if the kLSRolesShell bit is set in the inRoles parameter to indicate that the operating system should use the application itself as the execution shell of the new process. If not NULL, the outPSNs buffer is filled with the PSN that was used to open each item at the same index of the inItems array. The PSN capacity of the output buffer is specified by inMaxPSNCount. Version-Notes Thread-safe since OS X v10.4.

## See Also

### Deprecated Functions

- [LSGetHandlerOptionsForContentType(_:)](coreservices/1445296-lsgethandleroptionsforcontenttyp.md)
- [LSSetHandlerOptionsForContentType(_:_:)](coreservices/1447588-lssethandleroptionsforcontenttyp.md)
- [LSCopyAllHandlersForURLScheme(_:)](coreservices/1443240-lscopyallhandlersforurlscheme.md)
- [LSCopyDefaultHandlerForURLScheme(_:)](coreservices/1441725-lscopydefaulthandlerforurlscheme.md)
- [LSGetApplicationForItem(_:_:_:_:)](coreservices/1446185-lsgetapplicationforitem.md)
- [LSGetApplicationForURL(_:_:_:_:)](coreservices/1445210-lsgetapplicationforurl.md)
- [LSGetApplicationForInfo(_:_:_:_:_:_:)](coreservices/1449928-lsgetapplicationforinfo.md)
- [LSCopyApplicationForMIMEType(_:_:_:)](coreservices/1448586-lscopyapplicationformimetype.md)
- [LSCanRefAcceptItem(_:_:_:_:_:)](coreservices/1442183-lscanrefacceptitem.md)
- [LSFindApplicationForInfo(_:_:_:_:_:)](coreservices/1449588-lsfindapplicationforinfo.md)
- [LSOpenApplication(_:_:)](coreservices/1447930-lsopenapplication.md)
- [LSOpenURLsWithRole(_:_:_:_:_:_:)](coreservices/1448184-lsopenurlswithrole.md)
- [LSOpenFSRef(_:_:)](coreservices/1445663-lsopenfsref.md)
- [LSOpenFromRefSpec(_:_:)](coreservices/1444466-lsopenfromrefspec.md)
- [LSCopyItemInfoForRef(_:_:_:)](coreservices/1445227-lscopyiteminfoforref.md)
- [LSCopyItemInfoForURL(_:_:_:)](coreservices/1445685-lscopyiteminfoforurl.md)
- [LSCopyDisplayNameForRef(_:_:)](coreservices/1442576-lscopydisplaynameforref.md)
- [LSCopyDisplayNameForURL(_:_:)](coreservices/1446850-lscopydisplaynameforurl.md)
- [LSCopyKindStringForRef(_:_:)](coreservices/1448593-lscopykindstringforref.md)
- [LSCopyKindStringForURL(_:_:)](coreservices/1447481-lscopykindstringforurl.md)
- [LSCopyKindStringForTypeInfo(_:_:_:_:)](coreservices/1446207-lscopykindstringfortypeinfo.md)
- [LSCopyKindStringForMIMEType(_:_:)](coreservices/1442446-lscopykindstringformimetype.md)
- [LSCopyItemAttribute(_:_:_:_:)](coreservices/1445023-lscopyitemattribute.md)
- [LSCopyItemAttributes(_:_:_:_:)](coreservices/1446078-lscopyitemattributes.md)
- [LSGetExtensionInfo(_:_:_:)](coreservices/1446043-lsgetextensioninfo.md)
- [LSSetExtensionHiddenForRef(_:_:)](coreservices/1442766-lssetextensionhiddenforref.md)
- [LSSetExtensionHiddenForURL(_:_:)](coreservices/1443948-lssetextensionhiddenforurl.md)
- [LSRegisterFSRef(_:_:)](coreservices/1444582-lsregisterfsref.md)
