Ejemplo n.º 1
0
        /// <summary>
        /// Creates an registry tweak entry in the current addin key
        /// </summary>
        /// <param name="applicationType">target office application</param>
        /// <param name="addinType">addin class type informations</param>
        /// <param name="name">name for the tweak</param>
        /// <param name="value">value for the tweak</param>
        /// <param name="throwException">throw exception on error</param>
        /// <returns>true if value was stored otherwise false</returns>
        public static bool SetTweakPersistenceEntry(ApplicationIdentifiers.ApplicationType applicationType, Type addinType, string name, string value, bool throwException)
        {
            try
            {
                if (null == addinType)
                {
                    return(false);
                }
                RegistryLocationAttribute location = AttributeReflector.GetRegistryLocationAttribute(addinType);
                ProgIdAttribute           progID   = AttributeReflector.GetProgIDAttribute(addinType);

                OfficeApi.Tools.Contribution.RegistryLocationResult addinLocation =
                    Tools.Contribution.CommonUtils.TryFindAddinLoadLocation(addinType, applicationType);
                if (addinLocation == Office.Tools.Contribution.RegistryLocationResult.Unknown)
                {
                    return(false);
                }

                RegistryKey regKey = null;
                switch (addinLocation)
                {
                case Office.Tools.Contribution.RegistryLocationResult.User:
                    regKey = Registry.LocalMachine.OpenSubKey(_addinOfficeRegistryKey + progID.Value, true);
                    break;

                case Office.Tools.Contribution.RegistryLocationResult.System:
                    regKey = Registry.CurrentUser.OpenSubKey(_addinOfficeRegistryKey + progID.Value, true);
                    break;
                }

                if (null == regKey)
                {
                    return(false);
                }

                regKey.SetValue(name, value);
                regKey.Close();

                return(true);
            }
            catch (Exception exception)
            {
                NetOffice.DebugConsole.Default.WriteException(exception);
                if (throwException)
                {
                    throw;
                }
                else
                {
                    return(false);
                }
            }
        }
Ejemplo n.º 2
0
 private static void RegisterHandleRequireShutdownNotificationAttribute(Type type)
 {
     try
     {
         if (null != RequireShutdownNotificationAttribute.GetAttribute(type))
         {
             RegistryLocationAttribute location = AttributeReflector.GetRegistryLocationAttribute(type);
             bool            isSystem           = location.IsMachineAddinTarget();
             ProgIdAttribute progId             = AttributeReflector.GetProgIDAttribute(type);
             RequireShutdownNotificationAttribute.CreateApplicationKey(isSystem, _addinOfficeRegistryKey, progId.Value);
         }
     }
     catch (System.Exception exception)
     {
         DebugConsole.Default.WriteException(exception);
         if (!RegisterErrorHandler.RaiseStaticErrorHandlerMethod(type, RegisterErrorMethodKind.Register, exception))
         {
             throw;
         }
     }
 }
Ejemplo n.º 3
0
 private static void UnregisterHandleFormRegionAttribute(Type type)
 {
     try
     {
         var formAttributes = FormRegionAttribute.GetAttributes(type);
         foreach (var item in formAttributes)
         {
             RegistryLocationAttribute location = AttributeReflector.GetRegistryLocationAttribute(type);
             bool            isSystem           = location.IsMachineAddinTarget();
             ProgIdAttribute progId             = AttributeReflector.GetProgIDAttribute(type);
             FormRegionAttribute.TryDeleteKey(isSystem, _formRegionsOfficeRegistryKey, progId.Value, item.Category, item.Name);
         }
     }
     catch (System.Exception exception)
     {
         DebugConsole.Default.WriteException(exception);
         if (!RegisterErrorHandler.RaiseStaticErrorHandlerMethod(type, RegisterErrorMethodKind.Register, exception))
         {
             throw;
         }
     }
 }