Пример #1
0
 internal void GetData(RegistryKey addInKey, bool scanManagedInterfaces, bool scanNativeInterfaces, bool scanRemote, ref bool isUncPath, ref bool isHttpPath, ref bool isDllPathValid, ref bool isValidRegistration)
 {
     this.friendlyName = (string)addInKey.GetValue("FriendlyName");
     this.clsid        = RegistryReader.GetCLSIDFromProgID(this.progId);
     this.loadBehavior = addInKey.GetValue("LoadBehavior").ToString();
     this.manifestPath = (string)addInKey.GetValue("Manifest");
     if (this.manifestPath == null && string.IsNullOrEmpty(this.clsid))
     {
         this.SetInvalidRegistration();
         isDllPathValid      = false;
         isValidRegistration = false;
     }
     else
     {
         if (this.manifestPath != null)
         {
             isDllPathValid = this.GetVstoAddInData(scanManagedInterfaces, scanRemote, ref isUncPath, ref isHttpPath);
             if (!isDllPathValid || this.assemblyName == null || this.clrVersion == null)
             {
                 this.SetInvalidPath();
             }
         }
         else
         {
             this.manifestPath = Resources.NOT_APPLICABLE;
             if (RegistryReader.GetIsManagedCodeCategoryRegistered(this.clsid) || RegistryReader.GetIsMscoreeRegistered(this.clsid))
             {
                 isDllPathValid = this.GetManagedAddInData(scanManagedInterfaces);
             }
             else
             {
                 bool isNativeScanCompleted = false;
                 isDllPathValid = this.GetNativeAddInData(scanNativeInterfaces, out isNativeScanCompleted);
                 if (!isNativeScanCompleted)
                 {
                     this.SetNativeScanFailed();
                 }
             }
         }
         if (this.assemblyPath != null && isDllPathValid)
         {
             this.CleanAssemblyPath(ref this.assemblyPath, ref isDllPathValid);
         }
         else
         {
             this.statusDescription = Resources.PATH_INVALID;
         }
     }
 }