}// GetTimeUnitFromTimeString private void PutValuesinPage() { String sSettingCommand = "ExposedTypes"; if (m_sConfigFile != null) { sSettingCommand += "," + m_sConfigFile; } m_et = (ExposedTypes)CConfigStore.GetSetting(sSettingCommand); DataRow newRow; // Now build the Well Known objects table for (int i = 0; i < m_et.scWellKnownMode.Count; i++) { newRow = m_dtObjectURIs.NewRow(); // Find a good name String sName = m_et.scWellKnownObjectName[i]; if (sName == null || sName.Length == 0) { // We'll show the type instead sName = m_et.scWellKnownType[i]; } newRow["Object Name"] = sName; newRow["URI"] = m_et.scWellKnownUri[i]; m_dtObjectURIs.Rows.Add(newRow); } }// PutValuesinPage
}// InsertPropSheetPageControls //------------------------------------------------- // PutValuesinPage // // This function put data onto the property page //------------------------------------------------- private void PutValuesinPage() { // Get info that we'll need from the node CNode node = CNodeManager.GetNode(m_iCookie); // This should be ok now, but if we need this functionality // off of different nodes..... CVersionPolicy vp = (CVersionPolicy)node; m_txtAssemName.Text = m_bri.Name; m_txtPublicKeyToken.Text = m_bri.PublicKeyToken; // Figure out the current Publisher Policy Setting String sGetSettingString = "PublisherPolicyFor" + m_bri.Name + "," + m_bri.PublicKeyToken; // If we are getting this from an App config file, let's add that info m_sConfigFile = vp.ConfigFile; if (m_sConfigFile != null) { sGetSettingString += "," + m_sConfigFile; bool fUsePubPolicy = (bool)CConfigStore.GetSetting(sGetSettingString); m_chkPubPolicy.Checked = fUsePubPolicy; } // If this isn't an app config file, we don't want to show the // 'Apply Publisher Policy' Checkbox or description else { m_chkPubPolicy.Visible = false; m_lblPublisherPolicyHelp.Visible = false; } }// PutValuesinPage
}// AddMenuItems internal override void MenuCommand(int nCommandID, Object oResultItem) { if (nCommandID == COMMANDS.ADD_ASSEMBLY) { CFusionNoVersionDialog fd = new CFusionNoVersionDialog(); System.Windows.Forms.DialogResult dr = fd.ShowDialog(); if (dr == System.Windows.Forms.DialogResult.OK) { AddAssembly(fd.Assem); } } else if (nCommandID == COMMANDS.SHOW_LISTVIEW) { m_oResults = this; RefreshResultView(); m_fShowHTMLPage = false; } else if (nCommandID == COMMANDS.SHOW_TASKPAD) { m_oResults = m_taskPad; m_fShowHTMLPage = true; // The HTML pages comes displayed with this checkbox marked. Make // sure we update the xml setting CConfigStore.SetSetting("ShowHTMLForFullTrustAssem", "yes"); RefreshResultView(); } }// MenuCommand
}// onRestoreView internal override void TaskPadTaskNotify(Object arg, Object param, IConsole2 con, CData com) { if ((int)arg == 1) { CConfigStore.SetSetting("ShowHTMLForSharedAssem", (bool)param?"yes":"no"); m_fShowHTMLPage = (bool)param; // We'll change the result object but we won't refresh our result view // because the user doesn't necesarily want that to happen. However, // the next time the user visits this node, they will see the new result // view m_oResults = m_fShowHTMLPage?(Object)m_taskPad:(Object)this; } else if ((int)arg == 0) { m_oResults = this; RefreshResultView(); } else if ((int)arg == 2) { MenuCommand(COMMANDS.ADD_GACASSEMBLY, null); // Inform our Command History that we did this CCommandHistory.CommandExecuted(new CDO(this), COMMANDS.ADD_GACASSEMBLY); } }// TaskPadTaskNotify
}// PSet internal override void TaskPadTaskNotify(Object arg, Object param, IConsole2 con, CData com) { if ((int)arg == 0) { m_oResults = this; RefreshResultView(); } else if ((int)arg == 1) { MenuCommand(COMMANDS.ADD_PERMISSIONS); } else if ((int)arg == 2) { OpenMyPropertyPage(); } else if ((int)arg == 3) { CConfigStore.SetSetting("ShowHTMLForPermissionSet", (bool)param?"yes":"no"); m_fShowHTMLPage = (bool)param; // We'll change the result object but we won't refresh our result view // because the user doesn't necesarily want that to happen. However, // the next time the user visits this node, they will see the new result // view m_oResults = m_fShowHTMLPage?(Object)m_taskpad:(Object)this; } }// TaskPadTaskNotify
}// PutValuesinPage //------------------------------------------------- // ApplyData // // This function gets called when the user clicks the // OK or Apply button. We should take all our information // from the wizard and "Make it so". //------------------------------------------------- internal override bool ApplyData() { // Set the garbage collector setting String sGCSetting; sGCSetting = (m_radNormal.Checked == true)?"false":"true"; if (!CConfigStore.SetSetting("GarbageCollector," + m_appFiles.sAppConfigFile, sGCSetting)) { return(false); } // Set the binding mode String sBindingSetting; sBindingSetting = (m_chkSafeBinding.Checked == true)?"yes":"no"; if (!CConfigStore.SetSetting("BindingMode," + m_appFiles.sAppConfigFile, sBindingSetting)) { return(false); } // Set the Search Path if (!CConfigStore.SetSetting("SearchPath," + m_appFiles.sAppConfigFile, m_txtSearchPath.Text)) { return(false); } /* * // Set the required version of the runtime * CConfigStore.SetSetting("RequiredRuntimeVersion," + m_appFiles.sAppConfigFile, m_cbRuntimeVersion.Text); */ return(true); }// ApplyData
}// AddMenuItems internal override void MenuCommand(int nCommandID, Object oResultItem) { if (nCommandID == COMMANDS.DUPLICATE_PERMISSIONSET) { NamedPermissionSet nps = (NamedPermissionSet)m_psetWrapper.PSet.Copy(); String sBaseName = nps.Name; nps.Name = String.Format(CResourceStore.GetString("CSinglePermissionSet:PrependtoDupPSets"), nps.Name); int nCounter = 1; // make sure it's not already used while (Security.isPermissionSetNameUsed(m_pl, nps.Name)) { nCounter++; nps.Name = String.Format(CResourceStore.GetString("CSinglePermissionSet:NumPrependtoDupPSets"), nCounter.ToString(), sBaseName); } CNode node = CNodeManager.GetNodeByHScope(ParentHScopeItem); CSinglePermissionSet newNode = ((CPermissionSet)node).AddPermissionSet(nps); newNode.SecurityPolicyChanged(); // Put the selection on the new permission set we just created CNodeManager.SelectScopeItem(newNode.HScopeItem); } else if (nCommandID == COMMANDS.VIEW_PERMISSION) { int iResultItem = (int)oResultItem - 1; // Pop up the Dialog Box for this permission (new CReadOnlyPermission((IPermission)m_alPermissions[iResultItem])).ShowDialog(); } else if (nCommandID == COMMANDS.ADD_PERMISSIONS) { CAddPermissionsWizard wiz = new CAddPermissionsWizard(m_psetWrapper); wiz.LaunchWizard(Cookie); if (wiz.didFinish) { SecurityPolicyChanged(); GenerateGivenPermissionsStringList(); CNodeManager.Console.SelectScopeItem(HScopeItem); } } else if (nCommandID == COMMANDS.SHOW_LISTVIEW) { m_oResults = this; RefreshResultView(); m_fShowHTMLPage = false; } else if (nCommandID == COMMANDS.SHOW_TASKPAD) { m_oResults = m_taskpad; m_fShowHTMLPage = true; // The HTML pages comes displayed with this checkbox marked. Make // sure we update the xml setting CConfigStore.SetSetting("ShowHTMLForPermissionSet", "yes"); RefreshResultView(); } }// MenuCommand
}// TaskPadTaskNotify internal bool AddConfiguredAssembly(BindingRedirInfo bri) { // Let's trace through our parents looking for an Application node // If this node's parent is an Application node, then we know we're // configuring assemblies on a per app basis CNode node = null; if (ParentHScopeItem != -1) { node = CNodeManager.GetNodeByHScope(ParentHScopeItem); } String sPostFix = ""; // If this is an application node, make sure we tell the config store // about it if (node is CApplication) { sPostFix = "," + ((CApplication)node).AppConfigFile; } if (!CConfigStore.SetSetting("ConfiguredAssemblies" + sPostFix, bri)) { return(false); } // Now we'll tell out node to Refresh itself, // but only if we're showing the list view if (m_oResults == this) { RefreshResultView(); } return(true); }// AddConfiguredAssembly
}// onDoubleClick internal override int onDelete(Object o) { String sMessage; if (o is ArrayList) { sMessage = CResourceStore.GetString("CVersionPolicy:ConfirmDeleteConfig"); } else { sMessage = String.Format(CResourceStore.GetString("CVersionPolicy:ConfirmDeleteSingleConfig"), ((BindingRedirInfo)o).Name); } int nRes = MessageBox(sMessage, CResourceStore.GetString("CVersionPolicy:ConfirmDeleteConfigTitle"), MB.ICONQUESTION | MB.YESNO); if (nRes == MB.IDYES) { // Let's trace through our parents looking for an Application node CNode node = CNodeManager.GetNode(m_iCookie); // If this node's parent is an Application node, then we know we're // configuring assemblies on a per app basis int iParentHScope = node.ParentHScopeItem; if (iParentHScope != -1) { node = CNodeManager.GetNodeByHScope(iParentHScope); } String sPostFix = ""; // If this is an application node, make sure we tell the config store // about it if (node is CApplication) { sPostFix = "," + ((CApplication)node).AppConfigFile; } if (o is ArrayList) { ArrayList al = (ArrayList)o; int nLen = al.Count; for (int i = 0; i < nLen; i++) { int iResultNum = ((int)al[i]) - 1; CConfigStore.SetSetting("ConfiguredAssembliesDelete" + sPostFix, ((BindingRedirInfo)m_ol[iResultNum])); } } else { CConfigStore.SetSetting("ConfiguredAssembliesDelete" + sPostFix, (BindingRedirInfo)o); } // Now we'll Refresh ourselves RefreshResultView(); } return(HRESULT.S_OK); }// onDelete
}// onChange internal override bool ApplyData() { if (m_sConfigFile != null) { String sSetSettingString = "PublisherPolicyFor" + m_bri.Name + "," + m_bri.PublicKeyToken; sSetSettingString += "," + m_sConfigFile; return(CConfigStore.SetSetting(sSetSettingString, m_chkPubPolicy.Checked)); } return(true); } // ApplyData
}// CompareBindingRedirInfo internal override void RefreshResultView() { if (m_sConfigFile == null) { m_ol = (ArrayList)CConfigStore.GetSetting("ConfiguredAssemblies"); } else { m_ol = (ArrayList)CConfigStore.GetSetting("ConfiguredAssemblies," + m_sConfigFile); } base.RefreshResultView(); }// RefreshResultView
}// onVisibleChange private void PutValuesinPage() { m_nPrevSelection = -1; String sSettingCommand = "RemotingChannels"; if (m_sConfigFile != null) { sSettingCommand += "," + m_sConfigFile; } try { m_alRemotingChannels = (ArrayList)CConfigStore.GetSetting(sSettingCommand); m_cbChannel.Items.Clear(); for (int i = 0; i < m_alRemotingChannels.Count; i++) { // Go searching for the "displayname" attribute int j; for (j = 0; j < ((RemotingChannel)m_alRemotingChannels[i]).scAttributeName.Count; j++) { if (((RemotingChannel)m_alRemotingChannels[i]).scAttributeName[j].ToLower(CultureInfo.InvariantCulture).Equals("displayname")) { m_cbChannel.Items.Add(((RemotingChannel)m_alRemotingChannels[i]).scAttributeValue[j]); break; } } // This is funny... this channel didn't have a name.... if (j == ((RemotingChannel)m_alRemotingChannels[i]).scAttributeName.Count) { m_cbChannel.Items.Add(CResourceStore.GetString("<no name>")); } } if (m_alRemotingChannels.Count > 0) { m_cbChannel.SelectedIndex = 0; onChannelChange(null, null); } else { m_cbChannel.Text = CResourceStore.GetString("<none>"); } } catch (Exception) { // An exception will get thrown if there was an error reading // the remoting config info. Don't allow the property page to open. CloseSheet(); } }// PutValuesinPage
}// AddMenuItems internal override void MenuCommand(int iCommandID, Object oResultNum) { if (iCommandID == COMMANDS.ADD_ASSEMBLY) { CApplicationDepends appDepends = null; // Let's trace through our parents looking for an Application node CNode node = CNodeManager.GetNode(m_iCookie); // If this node's parent is an Application node, then we know we're // configuring assemblies on a per app basis int iParentHScope = node.ParentHScopeItem; if (iParentHScope != -1) { node = CNodeManager.GetNodeByHScope(iParentHScope); } // If this is an application node, make sure we tell the config store // about it if (node is CApplication) { // Cool, we have a dependent assemblies node appDepends = ((CApplication)node).AppDependsNode; } CConfigAssemWizard wiz = new CConfigAssemWizard(appDepends); wiz.LaunchWizard(Cookie); if (wiz.NewAssembly != null) { if (AddConfiguredAssembly(wiz.NewAssembly)) { onDoubleClick(wiz.NewAssembly); } } } else if (iCommandID == COMMANDS.SHOW_LISTVIEW) { m_oResults = this; RefreshResultView(); m_fShowHTMLPage = false; } else if (iCommandID == COMMANDS.SHOW_TASKPAD) { m_oResults = m_taskPad; m_fShowHTMLPage = true; // The HTML pages comes displayed with this checkbox marked. Make // sure we update the xml setting CConfigStore.SetSetting("ShowHTMLForConfigAssem", "yes"); RefreshResultView(); } }// MenuCommand
}// ValidateData internal override bool ApplyData() { // Make sure we've displayed this page first if (m_dg != null) { // Let's build a CodebaseLocations structure and put all our data in it. CodebaseLocations cbl = new CodebaseLocations(); cbl.scVersion = new StringCollection(); cbl.scCodeBase = new StringCollection(); // Let's jump to a new cell, to make sure the current cell we // were editing has it's changes 'saved' m_dg.CurrentCell = new DataGridCell(0, 1); m_dg.CurrentCell = new DataGridCell(0, 0); // We need to do a try/catch block here since we getting the count of // rows from the data table isn't completely accurate, so we'll just loop // until the data grid throws us an exception about accessing an invalid row. int nRow = 0; while (nRow <= m_dt.Rows.Count) { if (isValidRow(nRow)) { cbl.scVersion.Add((String)m_dg[nRow, 0]); cbl.scCodeBase.Add((String)m_dg[nRow, 1]); } nRow++; } String sSetSettingString = "CodeBasesFor" + m_bri.Name + "," + m_bri.PublicKeyToken; if (m_sConfigFile != null) { sSetSettingString += "," + m_sConfigFile; } if (!CConfigStore.SetSetting(sSetSettingString, cbl)) { return(false); } CNodeManager.GetNode(m_iCookie).RefreshResultView(); return(true); } return(false); }// ApplyData
}// getNumColumns public override int getNumRows() { if (m_ol == null) { if (m_sConfigFile == null) { m_ol = (ArrayList)CConfigStore.GetSetting("ConfiguredAssemblies"); } else { m_ol = (ArrayList)CConfigStore.GetSetting("ConfiguredAssemblies," + m_sConfigFile); } } return(m_ol.Count); }// GetNumRows
}// onChannelChange internal override bool ApplyData() { m_dg.CurrentCell = new DataGridCell(0, 0); // This call will copy all the current table stuff into our ArrayList onChannelChange(null, null); String sSettingCommand = "RemotingChannels"; if (m_sConfigFile != null) { sSettingCommand += "," + m_sConfigFile; } return(CConfigStore.SetSetting(sSettingCommand, m_alRemotingChannels)); } // ApplyData
}// InsertPropSheetPageControls private void PutValuesinPage() { m_chkUseSecurity.Checked = (bool)CConfigStore.GetSetting("SecurityEnabled"); String setting = (String)CConfigStore.GetSetting("GarbageCollector"); if (setting != null && setting.ToLower(CultureInfo.InvariantCulture).Equals("true")) { m_radConcurrent.Checked = true; } else { m_radNormal.Checked = true; } }// PutValuesinPage
}// PutValuesinPage internal override bool ApplyData() { if (!CConfigStore.SetSetting("SecurityEnabled", m_chkUseSecurity.Checked)) { return(false); } if (!CConfigStore.SetSetting("GarbageCollector", m_radConcurrent.Checked?"true":"false")) { return(false); } PutValuesinPage(); return(true); }// ApplyData
}// ValidateData private void PutValuesinPage() { m_nPrevSelection = -1; String sSettingCommand = "RemotingApplications"; if (m_sConfigFile != null) { sSettingCommand += "," + m_sConfigFile; } try { m_alRemotingAppInfo = (ArrayList)CConfigStore.GetSetting(sSettingCommand); m_cbRemoteApps.Items.Clear(); for (int i = 0; i < m_alRemotingAppInfo.Count; i++) { String sName = ((RemotingApplicationInfo)m_alRemotingAppInfo[i]).sName; if (sName == null || sName.Length == 0) { sName = CResourceStore.GetString("CRemotingProp1:NoDisplayName"); } m_cbRemoteApps.Items.Add(sName); } if (m_alRemotingAppInfo.Count > 0) { m_cbRemoteApps.DropDownStyle = ComboBoxStyle.DropDownList; m_cbRemoteApps.SelectedIndex = 0; onRemotingAppChange(null, null); } else { m_cbRemoteApps.Text = CResourceStore.GetString("CRemotingProp1:NoRemoteApps"); m_cbRemoteApps.Enabled = false; m_txtAppLocation.Enabled = false; } } catch (Exception) { // An exception will get thrown if there was an error reading // the remoting config info. Don't allow the property page to open. CloseSheet(); } }// PutValuesinPage
}// onDelete internal override void Showing() { if (!m_fReadShowHTML) { m_fShowHTMLPage = ((String)CConfigStore.GetSetting("ShowHTMLForConfigAssem")).Equals("yes"); if (m_fShowHTMLPage) { m_oResults = m_taskPad; } else { m_oResults = this; } m_fReadShowHTML = true; } }// Showing
}// Showing internal override int onDelete(Object o) { int nRes = MessageBox(CResourceStore.GetString("CApplication:VerifyRemoveApp"), CResourceStore.GetString("CApplication:VerifyRemoveAppTitle"), MB.ICONQUESTION | MB.YESNO); if (nRes == MB.IDYES) { // Grab our parent node and tell him to remove us CNodeManager.GetNodeByHScope(ParentHScopeItem).RemoveSpecificChild(Cookie); // Change the XML... if (CConfigStore.SetSetting("RemoveAppConfigFile", m_appInfo)) { return(HRESULT.S_OK); } } return(HRESULT.S_FALSE); }// onDelete
}// AddMenuItems internal override void MenuCommand(int iCommandID, Object oResultItem) { if (iCommandID == COMMANDS.FIND_DEPENDENTASSEMBLIES) { // Ok, let's see if we're currently being worked on.... m_thread.Suspend(); m_taskPadWaiting = new CGenericTaskPad(this, "LOADINGDEPENDASSEM_HTML"); m_oResults = m_taskPadWaiting; RefreshResultView(); // If the thread is currently working on this node, m_ThreadNode will be this node. // The second case is a little more tricky. If this node is next in line, there's // the possibility that our thread that handles this will be a few instructions // away from getting him. We won't bother working with it then. if (!m_fIKnowMyDependencies && m_ThreadNode != this && m_alNodes[0] != this) { FindDependenciesForThisNode(this); m_fIKnowMyDependencies = true; } // Our thread is working on it... let's give it high priority... else { m_thread.Priority = ThreadPriority.Highest; } m_thread.Resume(); } else if (iCommandID == COMMANDS.SHOW_LISTVIEW && m_fAllowListView) { m_oResults = this; RefreshResultView(); m_fShowHTMLPage = false; } else if (iCommandID == COMMANDS.SHOW_TASKPAD) { m_oResults = m_taskPad; m_fShowHTMLPage = true; // The HTML pages comes displayed with this checkbox marked. Make // sure we update the xml setting CConfigStore.SetSetting("ShowHTMLForDependAssem", "yes"); RefreshResultView(); } }// MenuCommand
}// onDeleteEntireRow private void PutValuesinPage() { // Get info that we'll need from the node CNode node = CNodeManager.GetNode(m_iCookie); // This should be ok now, but if we need this functionality // off of different nodes..... CVersionPolicy vp = (CVersionPolicy)node; String sGetSettingString = "BindingPolicyFor" + m_bri.Name + "," + m_bri.PublicKeyToken; // If we are getting this from an App config file, let's add that info m_sConfigFile = vp.ConfigFile; if (m_sConfigFile != null) { sGetSettingString += "," + m_sConfigFile; } BindingPolicy bp = (BindingPolicy)CConfigStore.GetSetting(sGetSettingString); int iLen = bp.scBaseVersion.Count; for (int i = 0; i < iLen; i++) { DataRow newRow; newRow = m_dt.NewRow(); newRow["Requested Version"] = bp.scBaseVersion[i]; newRow["New Version"] = bp.scRedirectVersion[i]; m_dt.Rows.Add(newRow); } // We want to have at least 1 row while (m_dt.Rows.Count < 1) { DataRow newRow; newRow = m_dt.NewRow(); newRow["Requested Version"] = ""; newRow["New Version"] = ""; m_dt.Rows.Add(newRow); } m_dg.CurrentCell = new DataGridCell(iLen, 0); }// PutValuesinPage
}// onDelete internal override void TaskPadTaskNotify(Object arg, Object param, IConsole2 con, CData com) { if ((int)arg == 1) { CConfigStore.SetSetting("ShowHTMLForFullTrustAssem", (bool)param?"yes":"no"); m_fShowHTMLPage = (bool)param; // We'll change the result object but we won't refresh our result view // because the user doesn't necesarily want that to happen. However, // the next time the user visits this node, they will see the new result // view m_oResults = m_fShowHTMLPage?(Object)m_taskPad:(Object)this; } else if ((int)arg == 0) { m_oResults = this; RefreshResultView(); } }// TaskPadTaskNotify
}// onRemotingAppChange internal override bool ApplyData() { // Get our currently displayed data into our array list if (m_alRemotingAppInfo.Count > 0) { m_dg.CurrentCell = new DataGridCell(0, 0); m_dg.CurrentCell = new DataGridCell(0, 1); } onRemotingAppChange(null, null); String sSettingCommand = "RemotingApplications"; if (m_sConfigFile != null) { sSettingCommand += "," + m_sConfigFile; } return(CConfigStore.SetSetting(sSettingCommand, m_alRemotingAppInfo)); } // ApplyData
}// MenuCommand internal override void Showing() { // Figure out what to display if (!m_fReadShowHTML) { m_taskPad = new CGenericTaskPad(this, "FULLTRUSTASSEM_HTML"); m_fShowHTMLPage = ((String)CConfigStore.GetSetting("ShowHTMLForFullTrustAssem")).Equals("yes"); if (m_fShowHTMLPage) { m_oResults = m_taskPad; } else { m_oResults = this; } m_fReadShowHTML = true; } }// Showing
}// onRename internal override void Showing() { // See if we've read from the XML file yet whether we're supposed to // show the HTML file if (!m_fReadShowHTML) { // Now tell my taskpad that I'm ready.... m_fShowHTMLPage = ((String)CConfigStore.GetSetting("ShowHTMLForPermissionSet")).Equals("yes"); if (m_fShowHTMLPage) { m_oResults = m_taskpad; } else { m_oResults = this; } m_fReadShowHTML = true; } }// Showing
}// ValidateData internal override bool ApplyData() { if (m_et.scWellKnownMode.Count > 0) { m_dgObjectURIs.CurrentCell = new DataGridCell(0, 0); } for (int i = 0; i < m_et.scWellKnownMode.Count; i++) { m_et.scWellKnownUri[i] = (String)m_dtObjectURIs.Rows[i]["URI"]; } String sSettingCommand = "ExposedTypes"; if (m_sConfigFile != null) { sSettingCommand += "," + m_sConfigFile; } return(CConfigStore.SetSetting(sSettingCommand, m_et)); } // ApplyData
static CCommandHistory() { // Read our stuff from the configuration try { m_olCommands = (ArrayList)CConfigStore.GetSetting("CommandHistory"); } catch (Exception) { m_olCommands = null; } AgeCommands(); // Make sure we can execute the commands this time around // This is bad. VerifyCommands needs the entire tree view // to be completely filled in so it can run verifications on all // the 'most recently used commands' to make sure that all the nodes // are there that need to be. // However, this method is fired before the entire tree view is completely // built. So one would think we could wait until the tree view is done // before verifying commands and such, right? // // Unfortunately, we need to generate a web page that has the recently // used commands BEFORE the tree finishes. Such problems we have, don't // we? //VerifiyCommands(); // Read the list of consumer commands.... will be useful for our lite container // Only try and do this if we're on a non-MMC host. If this fails, then // we should let the exception propgate up if (CNodeManager.Console is INonMMCHost) { m_alConsumerCommands = (ArrayList)CConfigStore.GetSetting("ConsumerCommands"); } }// CCommandHistory
}// MenuCommand internal override void Showing() { if (m_oResults != m_taskPadWaiting) { // See if we've read from the XML file yet whether we're supposed to // show the HTML file if (!m_fReadShowHTML) { // Now tell my taskpad that I'm ready.... m_fShowHTMLPage = ((String)CConfigStore.GetSetting("ShowHTMLForDependAssem")).Equals("yes"); if (m_fShowHTMLPage || m_olAssems == null) { m_oResults = m_taskPad; } else { m_oResults = this; } m_fReadShowHTML = true; } } }// Showing