Example #1
0
        private static Dictionary <string, IEnumerable <string> > GetAllowedPackagesAndPrivileges(IntPtr packageInfoHandle)
        {
            Interop.PackageManager.ErrorCode           err;
            Dictionary <string, IEnumerable <string> > allowedPackagesAndPrivileges = new Dictionary <string, IEnumerable <string> >();

            Interop.Package.PackageInfoResAllowedPackageCallback allowedPackageCallback = (allowedPackage, requiredPrivileges, userData) =>
            {
                List <string> requiredPrivilegesList = new List <string>();
                Interop.Package.PackageInfoPrivilegeInfoCallback requiredPrivCallback = (priv, requiredPrivCbUserData) =>
                {
                    requiredPrivilegesList.Add(priv);
                    return(true);
                };
                err = Interop.Package.PackageInfoForeachRequiredPrivilege(requiredPrivileges, requiredPrivCallback, IntPtr.Zero);
                if (err != Interop.PackageManager.ErrorCode.None)
                {
                    Log.Warn(LogTag, string.Format("Failed to get required privileges of allowed packages info. err = {0}", err));
                }
                else
                {
                    allowedPackagesAndPrivileges.Add(allowedPackage, requiredPrivilegesList);
                }
                return(true);
            };

            err = Interop.Package.PackageInfoForeachResAllowedPackage(packageInfoHandle, allowedPackageCallback, IntPtr.Zero);
            if (err != Interop.PackageManager.ErrorCode.None)
            {
                Log.Warn(LogTag, string.Format("Failed to get allowed packages info. err = {0}", err));
            }
            return(allowedPackagesAndPrivileges);
        }
Example #2
0
        private static List <string> GetPackagePrivilegeInformation(IntPtr packageInfoHandle)
        {
            List <string> privileges = new List <string>();

            Interop.Package.PackageInfoPrivilegeInfoCallback privilegeInfoCb = (privilege, userData) =>
            {
                privileges.Add(privilege);
                return(true);
            };

            Interop.PackageManager.ErrorCode err = Interop.Package.PackageInfoForeachPrivilegeInfo(packageInfoHandle, privilegeInfoCb, IntPtr.Zero);
            if (err != Interop.PackageManager.ErrorCode.None)
            {
                Log.Warn(LogTag, string.Format("Failed to get privilage info. err = {0}", err));
            }
            return(privileges);
        }