WindowsXP/admin/wmi/wbem/sdk/vs7/vside/servexpl/beta1/intrinsiceventquerydialog.cs
2025-04-27 07:49:33 -04:00

297 lines
7.6 KiB
C#

namespace Microsoft.VSDesigner.WMI
{
using System;
using System.ComponentModel;
using System.Core;
using System.WinForms;
using Microsoft.Win32.Interop;
using System.Drawing;
using WbemScripting;
using System.Collections;
//using System.Web.UI.WebControls;
public class IntrinsicEventQueryDialog : Form
{
private Label targetClassLbl = new Label();
private TextBox targetClassBox = new TextBox();
private Button selectClassBtn = new Button();
private Label selectEventLbl = new Label();
private ComboBox eventBox = new ComboBox();
private Label pollingIntervalLbl = new Label();
private TextBox pollingIntervalBox = new TextBox();
private Label secondsLbl = new Label();
private TextBox QueryText = new TextBox ();
private Button okBtn = new Button();
private Button cancelBtn = new Button();
private String serverName = string.Empty;
private String[] arIntrinsicEvents = new String[] {
WMISys.GetString("WMISE_IntrinsicEvent_Created"),
WMISys.GetString("WMISE_IntrinsicEvent_Modified"),
WMISys.GetString("WMISE_IntrinsicEvent_Deleted"),
WMISys.GetString("WMISE_IntrinsicEvent_Operated")
};
private String queryString = string.Empty;
public IntrinsicEventQueryDialog(String serverIn)
{
try
{
serverName = serverIn;
this.Text = WMISys.GetString("WMISE_IntrEventQueryDlg_Title");
this.AcceptButton = okBtn;
this.AutoScaleBaseSize = (Size) new Point(5, 13);
this.BorderStyle = FormBorderStyle.FixedSingle;
int dlgWidth = 400;
int dlgHeight = 290;
this.ClientSize = (Size) new Point(dlgWidth, dlgHeight);
this.ShowInTaskbar = false;
targetClassLbl.Location = new Point(16, 16);
targetClassLbl.Text = WMISys.GetString("WMISE_IntrEventQueryDlg_EventClassLbl");
targetClassBox.Location = new Point(16, 40);
targetClassBox.Size = (Size) new Point(200, 18);
targetClassBox.TabIndex = 1;
selectClassBtn.Location = new Point(230, 40);
selectClassBtn.Text = WMISys.GetString("WMISE_SelectClassBtn");
selectClassBtn.Click += new EventHandler(this.OnSelectClass);
selectClassBtn.TabIndex = 2;
selectEventLbl.Location = new Point(16, 82);
selectEventLbl.Text = WMISys.GetString("WMISE_IntrEventQueryDlg_EventName");
selectEventLbl.Size = (Size)new Point(210, 20);
eventBox.Style = ComboBoxStyle.DropDownList;
eventBox.Items.Add(arIntrinsicEvents[0]);//loc
eventBox.Items.Add(arIntrinsicEvents[1]);//loc
eventBox.Items.Add(arIntrinsicEvents[2]); //loc
eventBox.Items.Add(arIntrinsicEvents[3]); //loc
eventBox.SelectedIndex = 0;
eventBox.Location = new Point(230, 82);
eventBox.Size = (Size)new Point(150, 20);
eventBox.SelectedIndexChanged += new EventHandler(this.OnSelectEvent);
eventBox.TabIndex = 3;
pollingIntervalLbl.Location = new Point(16, 120);
pollingIntervalLbl.Text = WMISys.GetString("WMISE_IntrEventQueryDlg_PollingInterval"); //loc
pollingIntervalLbl.Size = (Size)new Point(210, 20);
pollingIntervalBox.Location = new Point(230, 120);
pollingIntervalBox.Size = (Size)new Point(50, 20);
pollingIntervalBox.Text = "10";
pollingIntervalBox.TextChanged += new EventHandler(this.OnPollingChanged);
pollingIntervalBox.TabIndex = 4;
secondsLbl.Location = new Point(290, 120);
secondsLbl.Text = "WMISE_Seconds";
QueryText.Location = new Point(16, 160);
QueryText.Size = (Size)new Point(368, 60);
QueryText.Multiline = true;
QueryText.ReadOnly = false;
QueryText.ScrollBars = ScrollBars.Vertical;
QueryText.TabIndex = 5;
okBtn.Text = WMISys.GetString("WMISE_SubscribeBtn");
okBtn.TabIndex = 6;
okBtn.Location = new Point(225, 250);
//okBtn.Click += new EventHandler(this.OnSubscribe);
okBtn.DialogResult = DialogResult.OK;
cancelBtn.Text = WMISys.GetString("WMISE_Cancel");
cancelBtn.TabIndex = 7;
cancelBtn.Location = new Point(310, 250);
cancelBtn.DialogResult = DialogResult.Cancel;
this.Controls.All = new Control[] {targetClassLbl,
targetClassBox,
selectClassBtn,
selectEventLbl,
eventBox,
pollingIntervalLbl,
pollingIntervalBox,
secondsLbl,
QueryText,
okBtn ,
cancelBtn
};
}
catch (Exception exc)
{
MessageBox.Show(WMISys.GetString("WMISE_Exception", exc.Message, exc.StackTrace));
throw (exc);
}
}
private String EventName
{
get
{
switch(eventBox.SelectedIndex)
{
case (0):
{
return "__InstanceCreationEvent";
}
case(1):
{
return "__InstanceModificationEvent";
}
case(2):
{
return "__InstanceDeletionEvent";
}
case(3):
{
return "__InstanceOperationEvent";
}
default:
return "";
}
}
}
public String QueryString
{
get
{
return QueryText.Text;
}
}
public String ClassName
{
get
{
if (targetClassBox.Text == string.Empty)
{
return "";
}
//split selClass into NS and ClassName parts (separated by ':')
char[] separ = new char[]{':'};
String[] parts = targetClassBox.Text.Split(separ);
if (parts.Length != 2)
{
return "";
}
return parts[1];
}
}
public String NS
{
get
{
if (targetClassBox.Text == string.Empty)
{
return "";
}
//split selClass into NS and ClassName parts (separated by ':')
char[] separ = new char[]{':'};
String[] parts = targetClassBox.Text.Split(separ);
if (parts.Length != 2)
{
return "";
}
return parts[0];
}
}
private void OnSelectClass (Object source, EventArgs args)
{
try
{
StringTable strs = new StringTable(50);
SelectWMIClassTreeDialog selectClassDlg = new SelectWMIClassTreeDialog(
serverName,
ClassFilters.ConcreteData,
//SchemaFilters.NoEvent|SchemaFilters.NoAbstract| SchemaFilters.NoSystem |SchemaFilters.NoAssoc,
strs);
DialogResult ret = ((SelectWMIClassTreeDialog)selectClassDlg).ShowDialog();
if (ret != DialogResult.OK)
{
return;
}
String selClass = ((SelectWMIClassTreeDialog)selectClassDlg).SelectedClasses.ToArray()[0];
targetClassBox.Text = selClass;
QueryText.Text = "SELECT * FROM " + EventName + " WITHIN " + pollingIntervalBox.Text +
" WHERE TargetInstance ISA \"" + ClassName + "\"";
}
catch (Exception exc)
{
MessageBox.Show(WMISys.GetString("WMISE_Exception", exc.Message, exc.StackTrace));
}
}
private void OnSubscribe (Object source, EventArgs args)
{
try
{
}
catch (Exception exc)
{
MessageBox.Show(WMISys.GetString("WMISE_Exception", exc.Message, exc.StackTrace));
}
}
private void OnSelectEvent (Object source, EventArgs args)
{
try
{
QueryText.Text = "SELECT * FROM " + EventName + " WITHIN " + pollingIntervalBox.Text +
" WHERE TargetInstance ISA \"" + ClassName + "\"";
}
catch (Exception exc)
{
MessageBox.Show(WMISys.GetString("WMISE_Exception", exc.Message, exc.StackTrace));
}
}
private void OnPollingChanged (Object source, EventArgs args)
{
try
{
QueryText.Text = "SELECT * FROM " + EventName + " WITHIN " + pollingIntervalBox.Text +
" WHERE TargetInstance ISA \"" + ClassName + "\"";
}
catch (Exception exc)
{
MessageBox.Show(WMISys.GetString("WMISE_Exception", exc.Message, exc.StackTrace));
}
}
}
}