mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-22 14:16:50 +00:00
1091 lines
32 KiB
C
1091 lines
32 KiB
C
/*
|
|
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__ */
|
|
|