summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/LaunchServices.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/quicktime_win32/LaunchServices.h')
-rw-r--r--common/quicktime_win32/LaunchServices.h1090
1 files changed, 1090 insertions, 0 deletions
diff --git a/common/quicktime_win32/LaunchServices.h b/common/quicktime_win32/LaunchServices.h
new file mode 100644
index 0000000..7e59002
--- /dev/null
+++ b/common/quicktime_win32/LaunchServices.h
@@ -0,0 +1,1090 @@
+/*
+ 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__ */
+