diff options
Diffstat (limited to 'common/quicktime_win32/LaunchServices.h')
| -rw-r--r-- | common/quicktime_win32/LaunchServices.h | 1090 |
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__ */ + |