You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1090 lines
32 KiB
1090 lines
32 KiB
/* |
|
File: LaunchServices.h |
|
|
|
Contains: Public interfaces for LaunchServices.framework |
|
|
|
Version: QuickTime 7.3 |
|
|
|
Copyright: (c) 2007 (c) 2001 by Apple Computer, Inc., all rights reserved. |
|
|
|
Bugs?: For bug reports, consult the following page on |
|
the World Wide Web: |
|
|
|
http://developer.apple.com/bugreporter/ |
|
|
|
*/ |
|
#ifndef __LAUNCHSERVICES__ |
|
#define __LAUNCHSERVICES__ |
|
|
|
#ifndef __MACTYPES__ |
|
#include <MacTypes.h> |
|
#endif |
|
|
|
#ifndef __CFSTRING__ |
|
#include <CFString.h> |
|
#endif |
|
|
|
#ifndef __FILES__ |
|
#include <Files.h> |
|
#endif |
|
|
|
#ifndef __CFURL__ |
|
#include <CFURL.h> |
|
#endif |
|
|
|
#ifndef __AEDATAMODEL__ |
|
#include <AEDataModel.h> |
|
#endif |
|
|
|
|
|
|
|
#if PRAGMA_ONCE |
|
#pragma once |
|
#endif |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
#if PRAGMA_IMPORT |
|
#pragma import on |
|
#endif |
|
|
|
#if PRAGMA_STRUCT_ALIGN |
|
#pragma options align=mac68k |
|
#elif PRAGMA_STRUCT_PACKPUSH |
|
#pragma pack(push, 2) |
|
#elif PRAGMA_STRUCT_PACK |
|
#pragma pack(2) |
|
#endif |
|
|
|
|
|
|
|
/* ======================================================================================================== */ |
|
/* LaunchServices Structures and Enums */ |
|
/* ======================================================================================================== */ |
|
|
|
enum { |
|
kLSUnknownErr = -10810, |
|
kLSNotAnApplicationErr = -10811, |
|
kLSNotInitializedErr = -10812, |
|
kLSDataUnavailableErr = -10813, /* e.g. no kind string*/ |
|
kLSApplicationNotFoundErr = -10814, /* e.g. no application claims the file*/ |
|
kLSUnknownTypeErr = -10815, |
|
kLSDataTooOldErr = -10816, |
|
kLSDataErr = -10817, |
|
kLSLaunchInProgressErr = -10818, /* e.g. opening an alreay opening application*/ |
|
kLSNotRegisteredErr = -10819, |
|
kLSAppDoesNotClaimTypeErr = -10820, |
|
kLSAppDoesNotSupportSchemeWarning = -10821, /* not an error, just a warning*/ |
|
kLSServerCommunicationErr = -10822, /* cannot set recent items*/ |
|
kLSCannotSetInfoErr = -10823 /* you may not set item info for this item*/ |
|
}; |
|
|
|
typedef OptionBits LSInitializeFlags; |
|
enum { |
|
kLSInitializeDefaults = 0x00000001 |
|
}; |
|
|
|
enum { |
|
kLSMinCatInfoBitmap = (kFSCatInfoNodeFlags | kFSCatInfoParentDirID | kFSCatInfoFinderInfo | kFSCatInfoFinderXInfo) /* minimum info needed to avoid a FSGetCatalogInfo call when fetching item information */ |
|
}; |
|
|
|
enum { |
|
kLSInvalidExtensionIndex = (unsigned long)0xFFFFFFFF /* Index returned from LSGetExtensionInfo when name has no extension*/ |
|
}; |
|
|
|
typedef OptionBits LSRequestedInfo; |
|
enum { |
|
kLSRequestExtension = 0x00000001, /* safe to use from threads*/ |
|
kLSRequestTypeCreator = 0x00000002, /* safe to use from threads*/ |
|
kLSRequestBasicFlagsOnly = 0x00000004, /* all but type of application and extension flags - safe to use from threads*/ |
|
kLSRequestAppTypeFlags = 0x00000008, /* NOT SAFE to use from threads*/ |
|
kLSRequestAllFlags = 0x00000010, /* NOT SAFE to use from threads*/ |
|
kLSRequestIconAndKind = 0x00000020, /* NOT SAFE to use from threads*/ |
|
kLSRequestExtensionFlagsOnly = 0x00000040, /* safe to use from threads*/ |
|
kLSRequestAllInfo = (unsigned long)0xFFFFFFFF /* NOT SAFE to use from threads*/ |
|
}; |
|
|
|
typedef OptionBits LSItemInfoFlags; |
|
enum { |
|
kLSItemInfoIsPlainFile = 0x00000001, /* none of the following applies*/ |
|
kLSItemInfoIsPackage = 0x00000002, /* app, doc, or bundle package*/ |
|
kLSItemInfoIsApplication = 0x00000004, /* single-file or packaged*/ |
|
kLSItemInfoIsContainer = 0x00000008, /* folder or volume*/ |
|
kLSItemInfoIsAliasFile = 0x00000010, /* Alias file (includes sym links)*/ |
|
kLSItemInfoIsSymlink = 0x00000020, /* UNIX sym link*/ |
|
kLSItemInfoIsInvisible = 0x00000040, /* does not include '.' files or '.hidden' entries*/ |
|
kLSItemInfoIsNativeApp = 0x00000080, /* Carbon or Cocoa native app*/ |
|
kLSItemInfoIsClassicApp = 0x00000100, /* CFM Classic app*/ |
|
kLSItemInfoAppPrefersNative = 0x00000200, /* Carbon app that prefers to be launched natively*/ |
|
kLSItemInfoAppPrefersClassic = 0x00000400, /* Carbon app that prefers to be launched in Classic*/ |
|
kLSItemInfoAppIsScriptable = 0x00000800, /* App can be scripted*/ |
|
kLSItemInfoIsVolume = 0x00001000, /* item is a volume*/ |
|
kLSItemInfoExtensionIsHidden = 0x00100000 /* item has a hidden extension*/ |
|
}; |
|
|
|
typedef OptionBits LSRolesMask; |
|
enum { |
|
kLSRolesNone = 0x00000001, /* no claim is made about support for this type/scheme*/ |
|
kLSRolesViewer = 0x00000002, /* claim to be able to view this type/scheme*/ |
|
kLSRolesEditor = 0x00000004, /* claim to be able to edit this type/scheme*/ |
|
kLSRolesAll = (unsigned long)0xFFFFFFFF /* claim to do it all*/ |
|
}; |
|
|
|
typedef UInt32 LSKindID; |
|
enum { |
|
kLSUnknownKindID = 0 |
|
}; |
|
|
|
enum { |
|
kLSUnknownType = 0, |
|
kLSUnknownCreator = 0 |
|
}; |
|
|
|
struct LSItemInfoRecord { |
|
LSItemInfoFlags flags; |
|
OSType filetype; |
|
OSType creator; /* release when finished*/ |
|
CFStringRef extension; /* release when finished*/ |
|
CFStringRef iconFileName; /* not for general use*/ |
|
LSKindID kindID; /* not for general use*/ |
|
}; |
|
typedef struct LSItemInfoRecord LSItemInfoRecord; |
|
|
|
typedef OptionBits LSAcceptanceFlags; |
|
enum { |
|
kLSAcceptDefault = 0x00000001, |
|
kLSAcceptAllowLoginUI = 0x00000002 /* show UI to log in if necessary*/ |
|
}; |
|
|
|
typedef OptionBits LSLaunchFlags; |
|
enum { |
|
kLSLaunchDefaults = 0x00000001, /* default = open, async, use Info.plist, start Classic*/ |
|
kLSLaunchAndPrint = 0x00000002, /* print items instead of open them*/ |
|
kLSLaunchReserved2 = 0x00000004, |
|
kLSLaunchReserved3 = 0x00000008, |
|
kLSLaunchReserved4 = 0x00000010, |
|
kLSLaunchReserved5 = 0x00000020, |
|
kLSLaunchReserved6 = 0x00000040, |
|
kLSLaunchInhibitBGOnly = 0x00000080, /* causes launch to fail if target is background-only.*/ |
|
kLSLaunchDontAddToRecents = 0x00000100, /* do not add app or documents to recents menus.*/ |
|
kLSLaunchDontSwitch = 0x00000200, /* don't bring new app to the foreground.*/ |
|
kLSLaunchNoParams = 0x00000800, /* Use Info.plist to determine launch parameters*/ |
|
kLSLaunchAsync = 0x00010000, /* launch async; obtain results from kCPSNotifyLaunch.*/ |
|
kLSLaunchStartClassic = 0x00020000, /* start up Classic environment if required for app.*/ |
|
kLSLaunchInClassic = 0x00040000, /* force app to launch in Classic environment.*/ |
|
kLSLaunchNewInstance = 0x00080000, /* Instantiate app even if it is already running.*/ |
|
kLSLaunchAndHide = 0x00100000, /* Send child a "hide" request as soon as it checks in.*/ |
|
kLSLaunchAndHideOthers = 0x00200000 /* Hide all other apps when child checks in.*/ |
|
}; |
|
|
|
struct LSLaunchFSRefSpec { |
|
const FSRef * appRef; /* app to use, can be NULL*/ |
|
UInt32 numDocs; /* items to open/print, can be NULL*/ |
|
const FSRef * itemRefs; /* array of FSRefs*/ |
|
const AEDesc * passThruParams; /* passed untouched to application as optional parameter*/ |
|
LSLaunchFlags launchFlags; |
|
void * asyncRefCon; /* used if you register for app birth/death notification*/ |
|
}; |
|
typedef struct LSLaunchFSRefSpec LSLaunchFSRefSpec; |
|
struct LSLaunchURLSpec { |
|
CFURLRef appURL; /* app to use, can be NULL*/ |
|
CFArrayRef itemURLs; /* items to open/print, can be NULL*/ |
|
const AEDesc * passThruParams; /* passed untouched to application as optional parameter*/ |
|
LSLaunchFlags launchFlags; |
|
void * asyncRefCon; /* used if you register for app birth/death notification*/ |
|
}; |
|
typedef struct LSLaunchURLSpec LSLaunchURLSpec; |
|
|
|
|
|
/* ======================================================================================================== */ |
|
/* LaunchServices Public Entry Points */ |
|
/* ======================================================================================================== */ |
|
|
|
/* |
|
* LSInit() |
|
* |
|
* Summary: |
|
* Initialize LaunchServices for use. |
|
* |
|
* Discussion: |
|
* LSInit is deprecated. Launch Services is initialized implicitly |
|
* when first called. |
|
* |
|
* Parameters: |
|
* |
|
* inFlags: |
|
* Use kLSInitializeDefaults. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSInit(LSInitializeFlags inFlags); |
|
|
|
|
|
|
|
/* |
|
* LSTerm() |
|
* |
|
* Summary: |
|
* Terminate LaunchServices use. |
|
* |
|
* Discussion: |
|
* LSTerm is deprecated. It does not need to be called. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSTerm(void); |
|
|
|
|
|
|
|
/* |
|
* LSCopyItemInfoForRef() |
|
* |
|
* Summary: |
|
* Return information about an item. |
|
* |
|
* Discussion: |
|
* Returns as much or as little information as requested about |
|
* inItemRef. Some information is available in a thread-safe manner, |
|
* some is not. All CFStrings must be released after use. |
|
* |
|
* Parameters: |
|
* |
|
* inItemRef: |
|
* The FSRef of the item about which information is requested. |
|
* |
|
* inWhichInfo: |
|
* Flags indicating which information to return |
|
* |
|
* outItemInfo: |
|
* Information is returned in this structure. Must not be NULL |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSCopyItemInfoForRef( |
|
const FSRef * inItemRef, |
|
LSRequestedInfo inWhichInfo, |
|
LSItemInfoRecord * outItemInfo); |
|
|
|
|
|
|
|
/* |
|
* LSCopyItemInfoForURL() |
|
* |
|
* Summary: |
|
* Return information about an item. |
|
* |
|
* Discussion: |
|
* Returns as much or as little information as requested about |
|
* inURL. Some information is available in a thread-safe manner, |
|
* some is not. All CFStrings must be released after use. |
|
* |
|
* Parameters: |
|
* |
|
* inURL: |
|
* The CFURLRef of the item about which information is requested. |
|
* |
|
* inWhichInfo: |
|
* Flags indicating which information to return |
|
* |
|
* outItemInfo: |
|
* Information is returned in this structure. Must not be NULL |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSCopyItemInfoForURL( |
|
CFURLRef inURL, |
|
LSRequestedInfo inWhichInfo, |
|
LSItemInfoRecord * outItemInfo); |
|
|
|
|
|
/* |
|
* LSGetExtensionInfo() |
|
* |
|
* Summary: |
|
* Get information about the extension for a file system name. |
|
* |
|
* Discussion: |
|
* Returns the starting index of the extension (not including the |
|
* period) or kLSInvalidExtensionIndex if the input name has no |
|
* extension. |
|
* |
|
* Parameters: |
|
* |
|
* inNameLen: |
|
* The number of the UniChars in inNameBuffer. |
|
* |
|
* inNameBuffer: |
|
* The buffer containing the name's Unicode characters. |
|
* |
|
* outExtStartIndex: |
|
* On success, the starting index of the extension if there is one |
|
* (not including the period). Set to kLSInvalidExtensionIndex if |
|
* inNameBuffer does not contain a valid extension. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSGetExtensionInfo( |
|
UniCharCount inNameLen, |
|
const UniChar inNameBuffer[], |
|
UniCharCount * outExtStartIndex); |
|
|
|
|
|
|
|
/* |
|
* LSCopyDisplayNameForRef() |
|
* |
|
* Summary: |
|
* Get the display name for an FSRef. |
|
* |
|
* Discussion: |
|
* Return a copy of the display name for an FSRef. Takes into |
|
* consideration whether this item has a hidden extension or not. |
|
* |
|
* Parameters: |
|
* |
|
* inRef: |
|
* The FSRef for which the display name is desired. |
|
* |
|
* outDisplayName: |
|
* Pointer to the CFString into which the display name should be |
|
* copied. Callers must dispose of the resulting CFString. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSCopyDisplayNameForRef( |
|
const FSRef * inRef, |
|
CFStringRef * outDisplayName); |
|
|
|
|
|
|
|
/* |
|
* LSCopyDisplayNameForURL() |
|
* |
|
* Summary: |
|
* Get the display name for a CFURLRef. |
|
* |
|
* Discussion: |
|
* Return a copy of the display name for a CFURLRef. Takes into |
|
* consideration whether this item has a hidden extension or not. |
|
* |
|
* Parameters: |
|
* |
|
* inURL: |
|
* The URL for which the display name is desired. |
|
* |
|
* outDisplayName: |
|
* Pointer to the CFString into which the display name should be |
|
* copied. Callers must dispose of the resulting CFString. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSCopyDisplayNameForURL( |
|
CFURLRef inURL, |
|
CFStringRef * outDisplayName); |
|
|
|
|
|
|
|
/* |
|
* LSSetExtensionHiddenForRef() |
|
* |
|
* Summary: |
|
* Sets whether the extension for an FSRef is hidden or not. |
|
* |
|
* Discussion: |
|
* Sets the necessary file system state to indicate that the |
|
* extension for inRef is hidden, as in the Finder. You can |
|
* determine if an FSRef's extension is hidden using |
|
* LSCopyItemInfoForRef. |
|
* |
|
* Parameters: |
|
* |
|
* inRef: |
|
* The FSRef for which the extension is to be hidden or shown. |
|
* |
|
* inHide: |
|
* True to hide inRef's extension, false to show it. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSSetExtensionHiddenForRef( |
|
const FSRef * inRef, |
|
Boolean inHide); |
|
|
|
|
|
|
|
/* |
|
* LSSetExtensionHiddenForURL() |
|
* |
|
* Summary: |
|
* Sets whether the extension for a CFURLRef is hidden or not. |
|
* |
|
* Discussion: |
|
* Sets the necessary file system state to indicate that the |
|
* extension for inURL is hidden, as in the Finder. You can |
|
* determine if a CFURLRef's extension is hidden using |
|
* LSCopyItemInfoForURL. |
|
* |
|
* Parameters: |
|
* |
|
* inURL: |
|
* The CFURLRef for which the extension is to be hidden or shown. |
|
* |
|
* inHide: |
|
* True to hide inURL's extension, false to show it. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSSetExtensionHiddenForURL( |
|
CFURLRef inURL, |
|
Boolean inHide); |
|
|
|
|
|
|
|
/* |
|
* LSCopyKindStringForRef() |
|
* |
|
* Summary: |
|
* Get the kind string for an item. |
|
* |
|
* Discussion: |
|
* Returns the kind string as used in the Finder and elsewhere for |
|
* inFSRef. The CFStringRef must be released after use. |
|
* |
|
* Parameters: |
|
* |
|
* inFSRef: |
|
* The item for which the kind string is requested. |
|
* |
|
* outKindString: |
|
* A CFStringRef* to receive the copied kind string object. This |
|
* CFStringRef must be released eventually. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSCopyKindStringForRef( |
|
const FSRef * inFSRef, |
|
CFStringRef * outKindString); |
|
|
|
|
|
|
|
/* |
|
* LSCopyKindStringForURL() |
|
* |
|
* Summary: |
|
* Get the kind string for an item. |
|
* |
|
* Discussion: |
|
* Returns the kind string as used in the Finder and elsewhere for |
|
* inURL. The CFStringRef must be released after use. |
|
* |
|
* Parameters: |
|
* |
|
* inURL: |
|
* The item for which the kind string is requested. |
|
* |
|
* outKindString: |
|
* A CFStringRef* to receive the copied kind string object. This |
|
* CFStringRef must be released eventually. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSCopyKindStringForURL( |
|
CFURLRef inURL, |
|
CFStringRef * outKindString); |
|
|
|
|
|
|
|
/* |
|
* LSCopyKindStringForTypeInfo() |
|
* |
|
* Summary: |
|
* Return the kind string for items like the provided info |
|
* |
|
* Discussion: |
|
* Returns the kind string as shown in the Finder for the those |
|
* items whose type, creator, and/or extension match the provided |
|
* information. The kind string returned will be the one that most |
|
* closely describes all the information provided. The kind string |
|
* is subject to the document binding preferences that have been |
|
* specified by the user. For example, if a creator is specified but |
|
* the user has asked for files with the given |
|
* creator/type/extension combination to open in an application with |
|
* a different creator, the kind string will be loaded from the |
|
* user's preferred application. |
|
* |
|
* Parameters: |
|
* |
|
* inType: |
|
* The OSType file type for which you want a kind string. Specify |
|
* kLSUnknownType if no file type information is available. |
|
* |
|
* inCreator: |
|
* The OSType creator for which you want a kind string. Specify |
|
* kLSUnknownCreator if no creator information is available. |
|
* |
|
* inExtension: |
|
* The extension for which you want a kind string. Specify NULL if |
|
* no extension information is available. |
|
* |
|
* outKindString: |
|
* A CFStringRef* to receive the copied kind string object. This |
|
* CFStringRef must be released eventually. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.2 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSCopyKindStringForTypeInfo( |
|
OSType inType, |
|
OSType inCreator, |
|
CFStringRef inExtension, /* can be NULL */ |
|
CFStringRef * outKindString); |
|
|
|
|
|
|
|
/* |
|
* LSCopyKindStringForMIMEType() |
|
* |
|
* Summary: |
|
* Get the kind string for the specified MIME type. |
|
* |
|
* Discussion: |
|
* Returns the localized kind string describing the specified MIME |
|
* type. |
|
* |
|
* Parameters: |
|
* |
|
* inMIMEType: |
|
* The string specifying the MIME type. |
|
* |
|
* outKindString: |
|
* A CFStringRef* to receive the copied kind string object. This |
|
* CFStringRef must be released eventually. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.2 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSCopyKindStringForMIMEType( |
|
CFStringRef inMIMEType, |
|
CFStringRef * outKindString); |
|
|
|
|
|
/* |
|
* LSGetApplicationForItem() |
|
* |
|
* Summary: |
|
* Return the application used to open an item. |
|
* |
|
* Discussion: |
|
* Consults the binding tables to return the application that would |
|
* be used to open inItemRef if it were double-clicked in the |
|
* Finder. This application will be the user-specified override if |
|
* appropriate or the default otherwise. If no application is known |
|
* to LaunchServices suitable for opening this item, |
|
* kLSApplicationNotFoundErr will be returned. |
|
* |
|
* Parameters: |
|
* |
|
* inItemRef: |
|
* The FSRef of the item for which the application is requested. |
|
* |
|
* inRoleMask: |
|
* Whether to return the editor or viewer for inItemRef. If you |
|
* don't care which, use kLSRolesAll. |
|
* |
|
* outAppRef: |
|
* Filled in with the FSRef of the application if not NULL. |
|
* |
|
* outAppURL: |
|
* Filled in with the CFURLRef of the application if not NULL. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSGetApplicationForItem( |
|
const FSRef * inItemRef, |
|
LSRolesMask inRoleMask, |
|
FSRef * outAppRef, /* can be NULL */ |
|
CFURLRef * outAppURL); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
* LSGetApplicationForInfo() |
|
* |
|
* Summary: |
|
* Return the application used to open items with particular data. |
|
* |
|
* Discussion: |
|
* Consults the binding tables to return the application that would |
|
* be used to open items with type, creator, and/or extension as |
|
* provided if they were double-clicked in the Finder. This |
|
* application will be the default for items like this if one has |
|
* been set. If no application is known to LaunchServices suitable |
|
* for opening such items, kLSApplicationNotFoundErr will be |
|
* returned. Not all three input parameters can be NULL at the same |
|
* time nor can both output parameters be NULL at the same time. |
|
* |
|
* Parameters: |
|
* |
|
* inType: |
|
* The file type to consider. Can be kLSUnknownType. |
|
* |
|
* inCreator: |
|
* The file creator to consider. Can be kLSUnknownCreator. |
|
* |
|
* inExtension: |
|
* The file name extension to consider. Can be NULL. |
|
* |
|
* inRoleMask: |
|
* Whether to return the editor or viewer for inItemRef. If you |
|
* don't care which, use kLSRolesAll. |
|
* |
|
* outAppRef: |
|
* Filled in with the FSRef of the application if not NULL. |
|
* |
|
* outAppURL: |
|
* Filled in with the CFURLRef of the application if not NULL. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSGetApplicationForInfo( |
|
OSType inType, |
|
OSType inCreator, |
|
CFStringRef inExtension, /* can be NULL */ |
|
LSRolesMask inRoleMask, |
|
FSRef * outAppRef, /* can be NULL */ |
|
CFURLRef * outAppURL); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
* LSCopyApplicationForMIMEType() |
|
* |
|
* Summary: |
|
* Return the application used to handle data with the specified |
|
* MIME type. |
|
* |
|
* Discussion: |
|
* The returned application URL will be the user's preferred handler |
|
* for the MIME type if one has been set. If no user preferred |
|
* application has been set, Launch Services will select a default |
|
* handler for the MIME type. If no application is known to handle |
|
* the MIME type, kLSApplicationNotFoundErr will be returned. |
|
* |
|
* Parameters: |
|
* |
|
* inMIMEType: |
|
* The string specifying the MIME type. |
|
* |
|
* inRoleMask: |
|
* A role mask that the chosen application must satisfy. Use |
|
* kLSRolesAll if the role is not important. |
|
* |
|
* outAppURL: |
|
* Receives the copied CFURLRef, which must be released by the |
|
* caller. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.2 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSCopyApplicationForMIMEType( |
|
CFStringRef inMIMEType, |
|
LSRolesMask inRoleMask, |
|
CFURLRef * outAppURL); |
|
|
|
|
|
|
|
/* |
|
* LSGetApplicationForURL() |
|
* |
|
* Summary: |
|
* Return the application used to open an item. |
|
* |
|
* Discussion: |
|
* Consults the binding tables to return the application that would |
|
* be used to open inURL if it were double-clicked in the Finder. |
|
* This application will be the user-specified override if |
|
* appropriate or the default otherwise. If no application is known |
|
* to LaunchServices suitable for opening this item, |
|
* kLSApplicationNotFoundErr will be returned. |
|
* |
|
* Parameters: |
|
* |
|
* inURL: |
|
* The CFURLRef of the item for which the application is requested. |
|
* |
|
* inRoleMask: |
|
* Whether to return the editor or viewer for inItemRef. If you |
|
* don't care which, use kLSRolesAll. |
|
* |
|
* outAppRef: |
|
* Filled in with the FSRef of the application if not NULL. |
|
* |
|
* outAppURL: |
|
* Filled in with the CFURLRef of the application if not NULL. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSGetApplicationForURL( |
|
CFURLRef inURL, |
|
LSRolesMask inRoleMask, |
|
FSRef * outAppRef, /* can be NULL */ |
|
CFURLRef * outAppURL); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
* LSFindApplicationForInfo() |
|
* |
|
* Summary: |
|
* Locate a specific application. |
|
* |
|
* Discussion: |
|
* Returns the application with the corresponding input information. |
|
* The registry of applications is consulted first in order of |
|
* bundleID, then creator, then name. All comparisons are case |
|
* insensitive and 'ties' are decided first by version, then by |
|
* native vs. Classic. |
|
* |
|
* Parameters: |
|
* |
|
* inCreator: |
|
* The file creator to consider. Can be kLSUnknownCreator. |
|
* |
|
* inBundleID: |
|
* The bundle ID to consider. Can be NULL. |
|
* |
|
* inName: |
|
* The name to consider. Can be NULL. Must include any extensions |
|
* that are part of the file system name, e.g. '.app'. |
|
* |
|
* outAppRef: |
|
* Filled in with the FSRef of the application if not NULL. |
|
* |
|
* outAppURL: |
|
* Filled in with the CFURLRef of the application if not NULL. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSFindApplicationForInfo( |
|
OSType inCreator, |
|
CFStringRef inBundleID, /* can be NULL */ |
|
CFStringRef inName, /* can be NULL */ |
|
FSRef * outAppRef, /* can be NULL */ |
|
CFURLRef * outAppURL); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
* LSCanRefAcceptItem() |
|
* |
|
* Summary: |
|
* Determine whether an item can accept another item. |
|
* |
|
* Discussion: |
|
* Returns in outAcceptsItem whether inTargetRef can accept |
|
* inItemFSRef as in a drag and drop operation. If inRoleMask is |
|
* other than kLSRolesAll then make sure inTargetRef claims to |
|
* fulfill the requested role. |
|
* |
|
* Parameters: |
|
* |
|
* inItemFSRef: |
|
* FSRef of the item about which acceptance is requested. |
|
* |
|
* inTargetRef: |
|
* FSRef of the potential target. |
|
* |
|
* inRoleMask: |
|
* The role(s) the target must claim in order to consider |
|
* acceptance. |
|
* |
|
* inFlags: |
|
* Use kLSAcceptDefault. |
|
* |
|
* outAcceptsItem: |
|
* Filled in with result. Must not be NULL. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSCanRefAcceptItem( |
|
const FSRef * inItemFSRef, |
|
const FSRef * inTargetRef, |
|
LSRolesMask inRoleMask, |
|
LSAcceptanceFlags inFlags, |
|
Boolean * outAcceptsItem); |
|
|
|
|
|
|
|
/* |
|
* LSCanURLAcceptURL() |
|
* |
|
* Summary: |
|
* Determine whether an item can accept another item. |
|
* |
|
* Discussion: |
|
* Returns in outAcceptsItem whether inTargetURL can accept |
|
* inItemURL as in a drag and drop operation. If inRoleMask is other |
|
* than kLSRolesAll then make sure inTargetRef claims to fulfill the |
|
* requested role. |
|
* |
|
* Parameters: |
|
* |
|
* inItemURL: |
|
* CFURLRef of the item about which acceptance is requested. |
|
* |
|
* inTargetURL: |
|
* CFURLRef of the potential target. |
|
* |
|
* inRoleMask: |
|
* The role(s) the target must claim in order to consider |
|
* acceptance. |
|
* |
|
* inFlags: |
|
* Use kLSAcceptDefault. |
|
* |
|
* outAcceptsItem: |
|
* Filled in with result. Must not be NULL. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSCanURLAcceptURL( |
|
CFURLRef inItemURL, |
|
CFURLRef inTargetURL, |
|
LSRolesMask inRoleMask, |
|
LSAcceptanceFlags inFlags, |
|
Boolean * outAcceptsItem); |
|
|
|
|
|
|
|
/* |
|
* LSOpenFSRef() |
|
* |
|
* Summary: |
|
* Open an application, document, or folder. |
|
* |
|
* Discussion: |
|
* Opens applications, documents, and folders. Applications are |
|
* opened via an 'oapp' or 'rapp' event. Documents are opened in |
|
* their user-overridden or default applications as appropriate. |
|
* Folders are opened in the Finder. Use the more specific |
|
* LSOpenFromRefSpec for more control over launching. |
|
* |
|
* Parameters: |
|
* |
|
* inRef: |
|
* The FSRef of the item to launch. |
|
* |
|
* outLaunchedRef: |
|
* The FSRef of the item actually launched. For inRefs that are |
|
* documents, outLaunchedRef will be the application used to |
|
* launch the document. Can be NULL. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSOpenFSRef( |
|
const FSRef * inRef, |
|
FSRef * outLaunchedRef); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
* LSOpenCFURLRef() |
|
* |
|
* Summary: |
|
* Open an application, document, or folder. |
|
* |
|
* Discussion: |
|
* Opens applications, documents, and folders. Applications are |
|
* opened via an 'oapp' or 'rapp' event. Documents are opened in |
|
* their user-overridden or default applications as appropriate. |
|
* Folders are opened in the Finder. Use the more specific |
|
* LSOpenFromURLSpec for more control over launching. |
|
* |
|
* Parameters: |
|
* |
|
* inURL: |
|
* The CFURLRef of the item to launch. |
|
* |
|
* outLaunchedURL: |
|
* The CFURLRef of the item actually launched. For inURLs that are |
|
* documents, outLaunchedURL will be the application used to |
|
* launch the document. Can be NULL. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSOpenCFURLRef( |
|
CFURLRef inURL, |
|
CFURLRef * outLaunchedURL); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
* LSOpenFromRefSpec() |
|
* |
|
* Summary: |
|
* Opens an application or one or more documents or folders. |
|
* |
|
* Discussion: |
|
* Opens applications, documents, and folders. |
|
* |
|
* Parameters: |
|
* |
|
* inLaunchSpec: |
|
* The specification of what to launch and how to launch it. |
|
* |
|
* outLaunchedRef: |
|
* The FSRef of the item actually launched. For inRefs that are |
|
* documents, outLaunchedRef will be the application used to |
|
* launch the document. Can be NULL. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSOpenFromRefSpec( |
|
const LSLaunchFSRefSpec * inLaunchSpec, |
|
FSRef * outLaunchedRef); /* can be NULL */ |
|
|
|
|
|
|
|
/* |
|
* LSOpenFromURLSpec() |
|
* |
|
* Summary: |
|
* Opens an application or one or more documents or folders. |
|
* |
|
* Discussion: |
|
* Opens applications, documents, and folders. |
|
* |
|
* Parameters: |
|
* |
|
* inLaunchSpec: |
|
* The specification of what to launch and how to launch it. |
|
* |
|
* outLaunchedURL: |
|
* The CFURLRef of the item actually launched. For inURLs that are |
|
* documents, outLaunchedURL will be the application used to |
|
* launch the document. Can be NULL. |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: not available in CarbonLib 1.x |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LSOpenFromURLSpec( |
|
const LSLaunchURLSpec * inLaunchSpec, |
|
CFURLRef * outLaunchedURL); /* can be NULL */ |
|
|
|
|
|
|
|
|
|
#if PRAGMA_STRUCT_ALIGN |
|
#pragma options align=reset |
|
#elif PRAGMA_STRUCT_PACKPUSH |
|
#pragma pack(pop) |
|
#elif PRAGMA_STRUCT_PACK |
|
#pragma pack() |
|
#endif |
|
|
|
#ifdef PRAGMA_IMPORT_OFF |
|
#pragma import off |
|
#elif PRAGMA_IMPORT |
|
#pragma import reset |
|
#endif |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
#endif /* __LAUNCHSERVICES__ */ |
|
|
|
|