}// class PropPagePairs

        internal CSharedAssemblies()
        {
            m_sGuid        = "96821C0B-CBE2-4dc9-AC52-756A3361B07F";
            m_sHelpSection = "";
            m_hIcon        = CResourceStore.GetHIcon("sharedassemblies_ico");
            DisplayName    = CResourceStore.GetString("CSharedAssemblies:DisplayName");
            Name           = "Assembly Cache";

            m_taskPad       = new CGenericTaskPad(this, "SHAREDASSEM_HTML");
            m_fReadShowHTML = false;

            m_olAssems = Fusion.ReadFusionCache();

            m_alResultPropPages = new ArrayList();


            // Set up the blank icon
            m_hBlankIcon      = CResourceStore.GetHIcon("blank_ico");
            m_iBlankIconIndex = CResourceStore.GetIconCookie(m_hBlankIcon);

            m_hGACIcon      = CResourceStore.GetHIcon("gac_ico");
            m_iGACIconIndex = CResourceStore.GetIconCookie(m_hGACIcon);

            m_hZAPIcon      = CResourceStore.GetHIcon("zap_ico");
            m_iZAPIconIndex = CResourceStore.GetIconCookie(m_hZAPIcon);

            m_fAllowMultiSelectResults = true;
        }// CSharedAssemblies
        }// onDoubleClick

        internal override int onDelete(Object o)
        {
            String sMessage;

            if (o is ArrayList)
            {
                sMessage = CResourceStore.GetString("CSharedAssemblies:VerifyDelete");
            }
            else
            {
                sMessage = String.Format(CResourceStore.GetString("CSharedAssemblies:VerifyDeleteSingle"), ((AssemInfo)o).Name);
            }


            int nRes = MessageBox(sMessage,
                                  CResourceStore.GetString("CSharedAssemblies:VerifyDeleteTitle"),
                                  MB.ICONQUESTION | MB.YESNO);

            if (nRes == MB.IDYES)
            {
                if (o is ArrayList)
                {
                    ArrayList al = (ArrayList)o;
                    for (int i = 0; i < al.Count; i++)
                    {
                        int nVictim = ((int)al[i]) - 1;
                        if (!Fusion.RemoveAssemblyFromGac((AssemInfo)m_olAssems[nVictim]))
                        {
                            MessageBox(String.Format(CResourceStore.GetString("CSharedAssemblies:ErrorRemoving"), ((AssemInfo)m_olAssems[nVictim]).Name),
                                       CResourceStore.GetString("CSharedAssemblies:ErrorRemovingTitle"),
                                       MB.ICONEXCLAMATION);
                        }
                    }
                }
                else
                {
                    AssemInfo ai = (AssemInfo)o;
                    if (!Fusion.RemoveAssemblyFromGac(ai))
                    {
                        MessageBox(String.Format(CResourceStore.GetString("CSharedAssemblies:ErrorRemoving"), ai.Name),
                                   CResourceStore.GetString("CSharedAssemblies:ErrorRemovingTitle"),
                                   MB.ICONEXCLAMATION);
                    }
                }

                m_olAssems = Fusion.ReadFusionCache();
                CNodeManager.Console.SelectScopeItem(HScopeItem);
            }

            return(HRESULT.S_OK);
        }// onDelete
        }// onDelete

        internal override void Showing()
        {
            m_olAssems = Fusion.ReadFusionCache();

            if (!m_fReadShowHTML)
            {
                m_fShowHTMLPage = ((String)CConfigStore.GetSetting("ShowHTMLForSharedAssem")).Equals("yes");

                if (m_fShowHTMLPage)
                {
                    m_oResults = m_taskPad;
                }
                else
                {
                    m_oResults = this;
                }
                m_fReadShowHTML = true;
            }
        }// Showing
        }// Paste

        private bool AddAssemToFusion(String sFilename)
        {
            if (Fusion.isManaged(sFilename))
            {
                int hr = Fusion.AddAssemblytoGac(sFilename);
                if (hr != HRESULT.S_OK)
                {
                    if (hr == HRESULT.E_ACCESSDENIED)
                    {
                        MessageBox(CResourceStore.GetString("CSharedAssemblies:AddAssemFailNoAccess"),
                                   CResourceStore.GetString("CSharedAssemblies:AddAssemFailNoAccessTitle"),
                                   MB.ICONEXCLAMATION);
                        // If this happens, they won't be able to add any items to the gac
                        return(false);
                    }
                    else
                    {
                        MessageBox(CResourceStore.GetString("CSharedAssemblies:AddAssemFail"),
                                   CResourceStore.GetString("CSharedAssemblies:AddAssemFailTitle"),
                                   MB.ICONEXCLAMATION);
                    }
                }
                // Don't bother refreshing the screen unless we added an assembly
                else
                {
                    m_olAssems = Fusion.ReadFusionCache();
                    CNodeManager.Console.SelectScopeItem(HScopeItem);
                }
            }
            else
            {
                MessageBox(CResourceStore.GetString("isNotManagedCode"),
                           CResourceStore.GetString("isNotManagedCodeTitle"),
                           MB.ICONEXCLAMATION);
            }
            return(true);
        }// AddAssemToFusion