コード例 #1
0
        public static string[] GetApplicationUrls(string filePath, LSRolesMask roles)
        {
            IntPtr url = IntPtr.Zero;
            IntPtr arr = IntPtr.Zero;

            try {
                url = CreatePathUrl(filePath);
                arr = LSCopyApplicationURLsForURL(url, roles);
                if (arr == IntPtr.Zero)
                {
                    return(new string[0]);
                }
                int      count  = CFArrayGetCount(arr);
                string[] values = new string [count];
                for (int i = 0; i < values.Length; i++)
                {
                    var u = CFArrayGetValueAtIndex(arr, i);
                    if (u != IntPtr.Zero)
                    {
                        values[i] = UrlToPath(u);
                    }
                }
                return(values);
            } finally {
                if (url != IntPtr.Zero)
                {
                    Release(url);
                }
                if (arr != IntPtr.Zero)
                {
                    Release(arr);
                }
            }
        }
コード例 #2
0
        public static string GetApplicationUrl(string filePath, LSRolesMask roles)
        {
            IntPtr url = IntPtr.Zero;

            try {
                url = CreatePathUrl(filePath);
                IntPtr appUrl = IntPtr.Zero;
                if (LSGetApplicationForURL(url, roles, IntPtr.Zero, ref appUrl) == 0 && appUrl != IntPtr.Zero)
                {
                    return(UrlToPath(appUrl));
                }
                return(null);
            } finally {
                if (url != IntPtr.Zero)
                {
                    Release(url);
                }
            }
        }
コード例 #3
0
 extern static IntPtr LSCopyApplicationURLsForURL(IntPtr urlRef, LSRolesMask roleMask);          //CFArrayRef
コード例 #4
0
 extern static int LSGetApplicationForURL(IntPtr url, LSRolesMask roleMask, IntPtr fsRefZero,
                                          ref IntPtr appUrl);
コード例 #5
0
ファイル: CoreFoundation.cs プロジェクト: msiyer/Pinta
		public static string[] GetApplicationUrls (string filePath, LSRolesMask roles)
		{
			IntPtr url = IntPtr.Zero;
			IntPtr arr = IntPtr.Zero;
			try {
				url = CreatePathUrl (filePath);
				arr = LSCopyApplicationURLsForURL (url, roles);
				if (arr == IntPtr.Zero)
					return new string[0];
				int count = CFArrayGetCount (arr);
				string[] values = new string [count];
				for (int i = 0; i < values.Length; i++ ) {
					var u = CFArrayGetValueAtIndex (arr, i);
					if (u != IntPtr.Zero)
						values[i] = UrlToPath (u);
				}
				return values;
			} finally {
				if (url != IntPtr.Zero)
					Release (url);
				if (arr != IntPtr.Zero)
					Release (arr);
			}
		}
コード例 #6
0
ファイル: CoreFoundation.cs プロジェクト: msiyer/Pinta
		public static string GetApplicationUrl (string filePath, LSRolesMask roles)
		{
			IntPtr url = IntPtr.Zero;
			try {
				url = CreatePathUrl (filePath);
				IntPtr appUrl = IntPtr.Zero;
				if (LSGetApplicationForURL (url, roles, IntPtr.Zero, ref appUrl) == 0 && appUrl != IntPtr.Zero)
					return UrlToPath (appUrl);
				return null;
			} finally {
				if (url != IntPtr.Zero)
					Release (url);
			}
		}
コード例 #7
0
ファイル: CoreFoundation.cs プロジェクト: msiyer/Pinta
		extern static int LSGetApplicationForURL (IntPtr url, LSRolesMask roleMask, IntPtr fsRefZero,
			ref IntPtr  appUrl);
コード例 #8
0
ファイル: CoreFoundation.cs プロジェクト: msiyer/Pinta
		extern static IntPtr LSCopyApplicationURLsForURL (IntPtr urlRef, LSRolesMask roleMask); //CFArrayRef
コード例 #9
0
ファイル: CoreFoundation.cs プロジェクト: pacificIT/smuxi
 static extern IntPtr LSCopyApplicationURLsForURL(IntPtr urlRef, LSRolesMask roleMask);