Mercurial > projects > dstep
diff dstep/coreservices/launchservices/LSOpen.d @ 11:07194b026fa4
Added bindings to a couple of frameworks, new license + some other things
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sat, 01 Aug 2009 15:03:28 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/coreservices/launchservices/LSOpen.d Sat Aug 01 15:03:28 2009 +0200 @@ -0,0 +1,80 @@ +/** + * Copyright: Copyright (c) 2009 Jacob Carlborg. + * Authors: Jacob Carlborg + * Version: Initial created: Jul 22, 2009 + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) + */ +module dstep.coreservices.launchservices.LSOpen; + +//import dstep.AvailabilityMacros; +import dstep.corefoundation.CoreFoundation; +import dstep.coreservices.ae.AE; +import dstep.coreservices.carboncore.CarbonCore; +import dstep.coreservices.launchservices.LSInfo; + +alias uint LSLaunchFlags; + +enum +{ + kLSLaunchDefaults = 0x00000001, + kLSLaunchAndPrint = 0x00000002, + kLSLaunchReserved2 = 0x00000004, + kLSLaunchReserved3 = 0x00000008, + kLSLaunchReserved4 = 0x00000010, + kLSLaunchReserved5 = 0x00000020, + kLSLaunchAndDisplayErrors = 0x00000040, + kLSLaunchInhibitBGOnly = 0x00000080, + kLSLaunchDontAddToRecents = 0x00000100, + kLSLaunchDontSwitch = 0x00000200, + kLSLaunchNoParams = 0x00000800, + kLSLaunchAsync = 0x00010000, + kLSLaunchStartClassic = 0x00020000, + kLSLaunchInClassic = 0x00040000, + kLSLaunchNewInstance = 0x00080000, + kLSLaunchAndHide = 0x00100000, + kLSLaunchAndHideOthers = 0x00200000, + kLSLaunchHasUntrustedContents = 0x00400000 +} + +struct LSLaunchFSRefSpec +{ + FSRef* appRef; + uint numDocs; + FSRef* itemRefs; + AEDesc* passThruParams; + uint launchFlags; + void* asyncRefCon; +} + + +struct LSLaunchURLSpec +{ + CFURLRef appURL; + CFArrayRef itemURLs; + AEDesc* passThruParams; + uint launchFlags; + void* asyncRefCon; +} + + +struct LSApplicationParameters +{ + int version_; + uint flags; + FSRef* application; + void* asyncLaunchRefCon; + CFDictionaryRef environment; + CFArrayRef argv; + AppleEvent* initialEvent; +} + +extern (C) +{ + int LSOpenFSRef (FSRef* inRef, FSRef* outLaunchedRef); + int LSOpenCFURLRef (CFURLRef inURL, CFURLRef* outLaunchedURL); + int LSOpenFromRefSpec (LSLaunchFSRefSpec* inLaunchSpec, FSRef* outLaunchedRef); + int LSOpenFromURLSpec (LSLaunchURLSpec* inLaunchSpec, CFURLRef* outLaunchedURL); + int LSOpenApplication (LSApplicationParameters* appParams, ProcessSerialNumber* outPSN); + int LSOpenItemsWithRole (FSRef* inItems, int inItemCount, uint inRole, AEKeyDesc* inAEParam, LSApplicationParameters* inAppParams, ProcessSerialNumber* outPSNs, int inMaxPSNCount); + int LSOpenURLsWithRole (CFArrayRef inURLs, uint inRole, AEKeyDesc* inAEParam, LSApplicationParameters* inAppParams, ProcessSerialNumber* outPSNs, int inMaxPSNCount); +} \ No newline at end of file