Mercurial > projects > dstep
view dstep/coreservices/carboncore/Aliases.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 source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Jul 21, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.coreservices.carboncore.Aliases; //import dstep.AvailabilityMacros; import dstep.corefoundation.CFBase; import dstep.coreservices.carboncore.Files; import dstep.coreservices.carboncore.MacTypes; import dstep.coreservices.carboncore.UTCUtils; import dstep.objc.bridge.TypeEncoding; alias uint FSAliasInfoBitmap; alias AliasRecord* AliasPtr; alias AliasPtr* AliasHandle; alias FSAliasInfo* FSAliasInfoPtr; alias short AliasInfoType; extern (C) { alias ubyte function (FSRef*, char*, char*) FSAliasFilterProcPtr; } // This is needed otherwise the enums will fail compiling with gdc version (GNU) { private { const __rAliasType = getOSType!("alis"); } } enum { kFSAliasInfoNone = 0x00000000, kFSAliasInfoVolumeCreateDate = 0x00000001, kFSAliasInfoTargetCreateDate = 0x00000002, kFSAliasInfoFinderInfo = 0x00000004, kFSAliasInfoIsDirectory = 0x00000008, kFSAliasInfoIDs = 0x00000010, kFSAliasInfoFSInfo = 0x00000020, kFSAliasInfoVolumeFlags = 0x00000040 } enum { rAliasType = getOSType!("alis") } enum { kARMMountVol = 0x00000001, kARMNoUI = 0x00000002, kARMMultVols = 0x00000008, kARMSearch = 0x00000100, kARMSearchMore = 0x00000200, kARMSearchRelFirst = 0x00000400, kARMTryFileIDFirst = 0x00000800 } enum { asiZoneName = -3, asiServerName = -2, asiVolumeName = -1, asiAliasName = 0, asiParentName = 1 } enum { kResolveAliasFileNoUI = 0x00000001, kResolveAliasTryFileIDFirst = 0x00000002 } struct AliasRecord { char* hidden; } struct FSAliasInfo { UTCDateTime volumeCreateDate; UTCDateTime targetCreateDate; uint fileType; uint fileCreator; uint parentDirID; uint nodeID; ushort filesystemID; ushort signature; ubyte volumeIsBootVolume; ubyte volumeIsAutomounted; ubyte volumeIsEjectable; ubyte volumeHasPersistentFileIDs; ubyte isDirectory; } extern (C) { short FSNewAlias (FSRef* fromFile, FSRef* target, AliasHandle* inAlias); short FSNewAliasMinimal (FSRef* target, AliasHandle* inAlias); short FSIsAliasFile (FSRef* fileRef, char* aliasFileFlag, char* folderFlag); short FSResolveAliasWithMountFlags (FSRef* fromFile, AliasHandle inAlias, FSRef* target, char* wasChanged, uint mountFlags); short FSResolveAlias (FSRef* fromFile, AliasHandle alias_, FSRef* target, char* wasChanged); short FSResolveAliasFileWithMountFlags (FSRef* theRef, ubyte resolveAliasChains, char* targetIsFolder, char* wasAliased, uint mountFlags); short FSResolveAliasFile (FSRef* theRef, ubyte resolveAliasChains, char* targetIsFolder, char* wasAliased); short FSFollowFinderAlias (FSRef* fromFile, AliasHandle alias_, ubyte logon, FSRef* target, char* wasChanged); short FSUpdateAlias (FSRef* fromFile, FSRef* target, AliasHandle alias_, char* wasChanged); short FSNewAliasUnicode (FSRef* fromFile, FSRef* targetParentRef, uint targetNameLength, wchar* targetName, AliasHandle* inAlias, char* isDirectory); short FSNewAliasMinimalUnicode (FSRef* targetParentRef, uint targetNameLength, wchar* targetName, AliasHandle* inAlias, char* isDirectory); int FSNewAliasFromPath (char* fromFilePath, char* targetPath, uint flags, AliasHandle* inAlias, char* isDirectory); int FSMatchAliasBulk (FSRef* fromFile, uint rulesMask, AliasHandle inAlias, short* aliasCount, FSRef* aliasList, char* needsUpdate, FSAliasFilterProcPtr aliasFilter, void* yourDataPtr); int FSCopyAliasInfo (AliasHandle inAlias, HFSUniStr255* targetName, HFSUniStr255* volumeName, CFStringRef* pathString, FSAliasInfoBitmap* whichInfo, FSAliasInfo* info); int GetAliasSize (AliasHandle alias_); uint GetAliasUserType (AliasHandle alias_); void SetAliasUserType (AliasHandle alias_, uint userType); int GetAliasSizeFromPtr (AliasRecord* alias_); uint GetAliasUserTypeFromPtr (AliasRecord* alias_); void SetAliasUserTypeWithPtr (AliasPtr alias_, uint userType); }