static public String GetMethodDescription(String methName, ISWbemObject curObj) { try { ISWbemQualifier descrQual = null; ISWbemMethod verboseMeth = null; if (!curObj.Path_.IsClass) { ISWbemObject classObj = WmiHelper.GetClassObject(curObj); verboseMeth = classObj.Methods_.Item(methName, 0); } else { verboseMeth = curObj.Methods_.Item(methName, 0); } descrQual = verboseMeth.Qualifiers_.Item("Description", 0); return(descrQual.get_Value().ToString()); } catch (Exception) { //2880: removed message here return(""); } }
/// <summary> /// CheckMethodBoolQualifier /// </summary> /// <param name="meth"> </param> /// <param name="qualName"> </param> static private bool CheckMethodBoolQualifier(ISWbemMethod meth, String qualName) { try { ISWbemQualifierSet qualSet = meth.Qualifiers_; ISWbemQualifier qual = (ISWbemQualifier)qualSet.Item(qualName, 0); return(Convert.ToBoolean(qual.get_Value())); } catch (Exception) { //NOTE that if the qualifier is not present, "Not found" will be returned //Return false in this case return(false); } }
/// <summary> /// IsImplementedMethod /// </summary> /// <param name="meth"> </param> static public bool IsImplementedMethod(ISWbemMethod meth) { return(CheckMethodBoolQualifier(meth, "Implemented")); }
/// <summary> /// IsStaticMethod /// </summary> /// <param name="meth"> </param> static public bool IsStaticMethod(ISWbemMethod meth) { return(CheckMethodBoolQualifier(meth, "Static")); }
public ExecuteMethodDialog(ISWbemObject wbemObjIn, ISWbemMethod methIn, ISWbemObject wbemClassObjIn) { try { if (wbemObjIn == null || methIn == null) { throw (new NullReferenceException()); } wmiObj = wbemObjIn; wmiClassObj = wbemClassObjIn; meth = methIn; this.Text = WMISys.GetString("WMISE_ExecMethodDlg_Title", wmiObj.Path_.Class, meth.Name); //this is a temp workaround for URT bug 48695: uncomment this later //this.AcceptButton = executeBtn; this.AutoScaleBaseSize = (Size) new Point(5, 13); this.BorderStyle = FormBorderStyle.FixedSingle; int dlgWidth = 400; int dlgHeight = 500; this.ClientSize = (Size) new Point(dlgWidth, dlgHeight); this.ShowInTaskbar = false; ServerName.Location = new Point(16, 16); ServerName.Text = WMISys.GetString("WMISE_ExecMethodDlg_ServerName", wmiObj.Path_.Server); //NamespaceName.Location = new Point(); //ClassName.Location = new Point(); if (meth.InParameters == null) { NoInParams.Text = WMISys.GetString("WMISE_ExecMethodDlg_NoInputParams"); NoInParams.Location = new Point(16, 40); } else { inParms = meth.InParameters.SpawnInstance_(0); gridIn = new WMIObjectGrid(inParms, PropertyFilters.NoSystem, GridMode.EditMode, false, false, false); labelInParms.Location = new Point(16, 40); labelInParms.Text = WMISys.GetString("WMISE_ExecMethodDlg_InputParameters"); gridIn.Location = new Point(16, 65); gridIn.Size = (Size) new Point(367, 140); gridIn.Anchor = AnchorStyles.All; gridIn.PreferredColumnWidth = 109; gridIn.PreferredRowHeight = 19; gridIn.TabIndex = 1; } labelOutParms.Location = new Point(16, 215); labelOutParms.Text = WMISys.GetString("WMISE_ExecMethodDlg_OutputParameters"); gridOut = new WMIObjectGrid(meth.OutParameters, PropertyFilters.NoSystem, GridMode.ViewMode, false, false, false); gridOut.Location = new Point(16, 240); gridOut.Size = (Size) new Point(367, 100); gridOut.Anchor = AnchorStyles.All; gridOut.PreferredColumnWidth = 109; gridOut.PreferredRowHeight = 19; gridOut.TabIndex = 2; descr.Text = WmiHelper.GetMethodDescription(meth.Name, wmiClassObj); descr.Location = new Point(16, 355); descr.Size = (Size) new Point(368, 70); descr.Multiline = true; descr.ReadOnly = true; descr.ScrollBars = ScrollBars.Vertical; executeBtn.Text = WMISys.GetString("WMISE_ExecMethodDlg_Execute"); executeBtn.Location = new Point(225, 440); executeBtn.Click += new EventHandler(this.OnExecute); executeBtn.TabIndex = 3; cancelBtn.Text = WMISys.GetString("WMISE_Cancel"); cancelBtn.Location = new Point(310, 440); cancelBtn.DialogResult = DialogResult.Cancel; cancelBtn.TabIndex = 4; if (meth.InParameters == null) { this.Controls.All = new Control[] { cancelBtn, executeBtn, ServerName, NoInParams, labelOutParms, gridOut, descr }; } else { this.Controls.All = new Control[] { cancelBtn, executeBtn, ServerName, labelInParms, gridIn, labelOutParms, gridOut, descr }; } } catch (Exception exc) { MessageBox.Show(WMISys.GetString("WMISE_Exception", exc.Message, exc.StackTrace)); throw (exc); } }