unit SystemMonitor_TLB;
// ************************************************************************ //
// WARNING
// -------
// The types declared in this file were generated from data read from a
// Type Library. If this type library is explicitly or indirectly (via
// another type library referring to this type library) re-imported, or the
// 'Refresh' command of the Type Library Editor activated while editing the
// Type Library, the contents of this file will be regenerated and all
// manual modifications will be lost.
// ************************************************************************ //
// PASTLWTR : 1.2
// File generated on 8/6/2012 7:50:32 from Type Library described below.
// ************************************************************************ //
// Type Lib: C:\WINDOWS\SYSTEM32\sysmon.ocx (1)
// LIBID: {1B773E42-2509-11CF-942F-008029004347}
// LCID: 0
// Helpfile:
// HelpString: System Monitor Control
// DepndLst:
// (1) v2.0 stdole, (C:\WINDOWS\system32\stdole2.tlb)
// Errors:
// Hint: TypeInfo 'SystemMonitor' changed to 'SystemMonitor_'
// Error creating palette bitmap of (TSystemMonitor_) : Registry key CLSID\{C4D2D8E0-D1DD-11CE-940F-008029004347}\ToolboxBitmap32 not found
// ************************************************************************ //
// *************************************************************************//
// NOTE:
// Items guarded by $IFDEF_LIVE_SERVER_AT_DESIGN_TIME are used by properties
// which return objects that may need to be explicitly created via a function
// call prior to any access via the property. These items have been disabled
// in order to prevent accidental use from within the object inspector. You
// may enable them by defining LIVE_SERVER_AT_DESIGN_TIME or by selectively
// removing them from the $IFDEF blocks. However, such items must still be
// programmatically created via a method of the appropriate CoClass before
// they can be used.
{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}
{$VARPROPSETTER ON}
interface
uses Windows, ActiveX, Classes, Graphics, OleCtrls, OleServer, StdVCL, Variants;
// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:
// Type Libraries : LIBID_xxxx
// CoClasses : CLASS_xxxx
// DISPInterfaces : DIID_xxxx
// Non-DISP interfaces: IID_xxxx
// *********************************************************************//
const
// TypeLibrary Major and minor versions
SystemMonitorMajorVersion = 3;
SystemMonitorMinorVersion = 6;
LIBID_SystemMonitor: TGUID = '{1B773E42-2509-11CF-942F-008029004347}';
IID_ICounterItem: TGUID = '{771A9520-EE28-11CE-941E-008029004347}';
DIID_DICounterItem: TGUID = '{C08C4FF2-0E2E-11CF-942C-008029004347}';
IID_ICounters: TGUID = '{79167962-28FC-11CF-942F-008029004347}';
IID_ILogFileItem: TGUID = '{D6B518DD-05C7-418A-89E6-4F9CE8C6841E}';
DIID_DILogFileItem: TGUID = '{8D093FFC-F777-4917-82D1-833FBC54C58F}';
IID_ILogFiles: TGUID = '{6A2A97E6-6851-41EA-87AD-2A8225335865}';
IID_ISystemMonitor: TGUID = '{194EB241-C32C-11CF-9398-00AA00A3DDEA}';
DIID_DISystemMonitorInternal: TGUID = '{194EB242-C32C-11CF-9398-00AA00A3DDEA}';
DIID_DISystemMonitor: TGUID = '{13D73D81-C32E-11CF-9398-00AA00A3DDEA}';
IID_ISystemMonitorEvents: TGUID = '{EE660EA0-4ABD-11CF-943A-008029004347}';
DIID_DISystemMonitorEvents: TGUID = '{84979930-4AB3-11CF-943A-008029004347}';
CLASS_SystemMonitor_: TGUID = '{C4D2D8E0-D1DD-11CE-940F-008029004347}';
CLASS_CounterItem: TGUID = '{C4D2D8E0-D1DD-11CE-940F-008029004348}';
CLASS_Counters: TGUID = '{B2B066D2-2AAC-11CF-942F-008029004347}';
CLASS_LogFileItem: TGUID = '{16EC5BE8-DF93-4237-94E4-9EE918111D71}';
CLASS_LogFiles: TGUID = '{2735D9FD-F6B9-4F19-A5D9-E2D068584BC5}';
// *********************************************************************//
// Declaration of Enumerations defined in Type Library
// *********************************************************************//
// Constants for enum DisplayTypeConstants
type
DisplayTypeConstants = TOleEnum;
const
sysmonLineGraph = $00000001;
sysmonHistogram = $00000002;
sysmonReport = $00000003;
// Constants for enum ReportValueTypeConstants
type
ReportValueTypeConstants = TOleEnum;
const
sysmonDefaultValue = $00000000;
sysmonCurrentValue = $00000001;
sysmonAverage = $00000002;
sysmonMinimum = $00000003;
sysmonMaximum = $00000004;
// Constants for enum DataSourceTypeConstants
type
DataSourceTypeConstants = TOleEnum;
const
sysmonNullDataSource = $FFFFFFFF;
sysmonCurrentActivity = $00000001;
sysmonLogFiles = $00000002;
sysmonSqlLog = $00000003;
type
// *********************************************************************//
// Forward declaration of types defined in TypeLibrary
// *********************************************************************//
ICounterItem = interface;
DICounterItem = dispinterface;
ICounters = interface;
ICountersDisp = dispinterface;
ILogFileItem = interface;
DILogFileItem = dispinterface;
ILogFiles = interface;
ILogFilesDisp = dispinterface;
ISystemMonitor = interface;
DISystemMonitorInternal = dispinterface;
DISystemMonitor = dispinterface;
ISystemMonitorEvents = interface;
DISystemMonitorEvents = dispinterface;
// *********************************************************************//
// Declaration of CoClasses defined in Type Library
// (NOTE: Here we map each CoClass to its Default Interface)
// *********************************************************************//
SystemMonitor_ = DISystemMonitor;
CounterItem = DICounterItem;
Counters = ICounters;
LogFileItem = DILogFileItem;
LogFiles = ILogFiles;
// *********************************************************************//
// Declaration of structures, unions and aliases.
// *********************************************************************//
PUserType1 = ^TGUID; {*}
// *********************************************************************//
// Interface: ICounterItem
// Flags: (16) Hidden
// GUID: {771A9520-EE28-11CE-941E-008029004347}
// *********************************************************************//
ICounterItem = interface(IUnknown)
['{771A9520-EE28-11CE-941E-008029004347}']
function Get_Value(out pdblValue: Double): HResult; stdcall;
function Set_Color(pColor: OLE_COLOR): HResult; stdcall;
function Get_Color(out pColor: OLE_COLOR): HResult; stdcall;
function Set_Width(piValue: SYSINT): HResult; stdcall;
function Get_Width(out piValue: SYSINT): HResult; stdcall;
function Set_LineStyle(piValue: SYSINT): HResult; stdcall;
function Get_LineStyle(out piValue: SYSINT): HResult; stdcall;
function Set_ScaleFactor(piValue: SYSINT): HResult; stdcall;
function Get_ScaleFactor(out piValue: SYSINT): HResult; stdcall;
function Get_Path(out pstrValue: WideString): HResult; stdcall;
function GetValue(out Value: Double; out Status: Integer): HResult; stdcall;
function GetStatistics(out Max: Double; out Min: Double; out Avg: Double; out Status: Integer): HResult; stdcall;
end;
// *********************************************************************//
// DispIntf: DICounterItem
// Flags: (4112) Hidden Dispatchable
// GUID: {C08C4FF2-0E2E-11CF-942C-008029004347}
// *********************************************************************//
DICounterItem = dispinterface
['{C08C4FF2-0E2E-11CF-942C-008029004347}']
property Value: Double readonly dispid 0;
property Color: OLE_COLOR dispid 1;
property Width: SYSINT dispid 2;
property LineStyle: SYSINT dispid 3;
property ScaleFactor: SYSINT dispid 4;
property Path: WideString readonly dispid 5;
procedure GetValue(out Value: Double; out Status: Integer); dispid 1610678282;
procedure GetStatistics(out Max: Double; out Min: Double; out Avg: Double; out Status: Integer); dispid 1610678283;
end;
// *********************************************************************//
// Interface: ICounters
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {79167962-28FC-11CF-942F-008029004347}
// *********************************************************************//
ICounters = interface(IDispatch)
['{79167962-28FC-11CF-942F-008029004347}']
function Get_Count: Integer; safecall;
function Get__NewEnum: IUnknown; safecall;
function Get_Item(index: OleVariant): DICounterItem; safecall;
function Add(const pathname: WideString): DICounterItem; safecall;
procedure Remove(index: OleVariant); safecall;
property Count: Integer read Get_Count;
property _NewEnum: IUnknown read Get__NewEnum;
property Item[index: OleVariant]: DICounterItem read Get_Item; default;
end;
// *********************************************************************//
// DispIntf: ICountersDisp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {79167962-28FC-11CF-942F-008029004347}
// *********************************************************************//
ICountersDisp = dispinterface
['{79167962-28FC-11CF-942F-008029004347}']
property Count: Integer readonly dispid 1610743808;
property _NewEnum: IUnknown readonly dispid -4;
property Item[index: OleVariant]: DICounterItem readonly dispid 0; default;
function Add(const pathname: WideString): DICounterItem; dispid 1610743811;
procedure Remove(index: OleVariant); dispid 1610743812;
end;
// *********************************************************************//
// Interface: ILogFileItem
// Flags: (16) Hidden
// GUID: {D6B518DD-05C7-418A-89E6-4F9CE8C6841E}
// *********************************************************************//
ILogFileItem = interface(IUnknown)
['{D6B518DD-05C7-418A-89E6-4F9CE8C6841E}']
function Get_Path(out pstrValue: WideString): HResult; stdcall;
end;
// *********************************************************************//
// DispIntf: DILogFileItem
// Flags: (4112) Hidden Dispatchable
// GUID: {8D093FFC-F777-4917-82D1-833FBC54C58F}
// *********************************************************************//
DILogFileItem = dispinterface
['{8D093FFC-F777-4917-82D1-833FBC54C58F}']
property Path: WideString readonly dispid 0;
end;
// *********************************************************************//
// Interface: ILogFiles
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {6A2A97E6-6851-41EA-87AD-2A8225335865}
// *********************************************************************//
ILogFiles = interface(IDispatch)
['{6A2A97E6-6851-41EA-87AD-2A8225335865}']
function Get_Count: Integer; safecall;
function Get__NewEnum: IUnknown; safecall;
function Get_Item(index: OleVariant): DILogFileItem; safecall;
function Add(const pathname: WideString): DILogFileItem; safecall;
procedure Remove(index: OleVariant); safecall;
property Count: Integer read Get_Count;
property _NewEnum: IUnknown read Get__NewEnum;
property Item[index: OleVariant]: DILogFileItem read Get_Item; default;
end;
// *********************************************************************//
// DispIntf: ILogFilesDisp
// Flags: (4432) Hidden Dual OleAutomation Dispatchable
// GUID: {6A2A97E6-6851-41EA-87AD-2A8225335865}
// *********************************************************************//
ILogFilesDisp = dispinterface
['{6A2A97E6-6851-41EA-87AD-2A8225335865}']
property Count: Integer readonly dispid 1610743808;
property _NewEnum: IUnknown readonly dispid -4;
property Item[index: OleVariant]: DILogFileItem readonly dispid 0; default;
function Add(const pathname: WideString): DILogFileItem; dispid 1610743811;
procedure Remove(index: OleVariant); dispid 1610743812;
end;
// *********************************************************************//
// Interface: ISystemMonitor
// Flags: (16) Hidden
// GUID: {194EB241-C32C-11CF-9398-00AA00A3DDEA}
// *********************************************************************//
ISystemMonitor = interface(IUnknown)
['{194EB241-C32C-11CF-9398-00AA00A3DDEA}']
function Get_Appearance(out iAppearance: SYSINT): HResult; stdcall;
function Set_Appearance(iAppearance: SYSINT): HResult; stdcall;
function Get_BackColor(out pColor: OLE_COLOR): HResult; stdcall;
function Set_BackColor(pColor: OLE_COLOR): HResult; stdcall;
function Get_BorderStyle(out iBorderStyle: SYSINT): HResult; stdcall;
function Set_BorderStyle(iBorderStyle: SYSINT): HResult; stdcall;
function Get_ForeColor(out pColor: OLE_COLOR): HResult; stdcall;
function Set_ForeColor(pColor: OLE_COLOR): HResult; stdcall;
function Get_Font(out ppFont: IFontDisp): HResult; stdcall;
function _Set_Font(const ppFont: IFontDisp): HResult; stdcall;
function Get_Counters(out ppICounters: ICounters): HResult; stdcall;
function Set_ShowVerticalGrid(pbState: WordBool): HResult; stdcall;
function Get_ShowVerticalGrid(out pbState: WordBool): HResult; stdcall;
function Set_ShowHorizontalGrid(pbState: WordBool): HResult; stdcall;
function Get_ShowHorizontalGrid(out pbState: WordBool): HResult; stdcall;
function Set_ShowLegend(pbState: WordBool): HResult; stdcall;
function Get_ShowLegend(out pbState: WordBool): HResult; stdcall;
function Set_ShowScaleLabels(pbState: WordBool): HResult; stdcall;
function Get_ShowScaleLabels(out pbState: WordBool): HResult; stdcall;
function Set_ShowValueBar(pbState: WordBool): HResult; stdcall;
function Get_ShowValueBar(out pbState: WordBool): HResult; stdcall;
function Set_MaximumScale(piValue: SYSINT): HResult; stdcall;
function Get_MaximumScale(out piValue: SYSINT): HResult; stdcall;
function Set_MinimumScale(piValue: SYSINT): HResult; stdcall;
function Get_MinimumScale(out piValue: SYSINT): HResult; stdcall;
function Set_UpdateInterval(pfValue: Single): HResult; stdcall;
function Get_UpdateInterval(out pfValue: Single): HResult; stdcall;
function Set_DisplayType(peDisplayType: DisplayTypeConstants): HResult; stdcall;
function Get_DisplayType(out peDisplayType: DisplayTypeConstants): HResult; stdcall;
function Set_ManualUpdate(pbState: WordBool): HResult; stdcall;
function Get_ManualUpdate(out pbState: WordBool): HResult; stdcall;
function Set_GraphTitle(const pbsTitle: WideString): HResult; stdcall;
function Get_GraphTitle(out pbsTitle: WideString): HResult; stdcall;
function Set_YAxisLabel(const pbsTitle: WideString): HResult; stdcall;
function Get_YAxisLabel(out pbsTitle: WideString): HResult; stdcall;
function CollectSample: HResult; stdcall;
function UpdateGraph: HResult; stdcall;
function BrowseCounters: HResult; stdcall;
function DisplayProperties: HResult; stdcall;
function Counter(iIndex: SYSINT; out ppICounter: ICounterItem): HResult; stdcall;
function AddCounter(const bsPath: WideString; out ppICounter: ICounterItem): HResult; stdcall;
function DeleteCounter(const pCtr: ICounterItem): HResult; stdcall;
function Get_BackColorCtl(out pColor: OLE_COLOR): HResult; stdcall;
function Set_BackColorCtl(pColor: OLE_COLOR): HResult; stdcall;
function Set_LogFileName(const bsFileName: WideString): HResult; stdcall;
function Get_LogFileName(out bsFileName: WideString): HResult; stdcall;
function Set_LogViewStart(StartTime: TDateTime): HResult; stdcall;
function Get_LogViewStart(out StartTime: TDateTime): HResult; stdcall;
function Set_LogViewStop(StopTime: TDateTime): HResult; stdcall;
function Get_LogViewStop(out StopTime: TDateTime): HResult; stdcall;
function Get_GridColor(out pColor: OLE_COLOR): HResult; stdcall;
function Set_GridColor(pColor: OLE_COLOR): HResult; stdcall;
function Get_TimeBarColor(out pColor: OLE_COLOR): HResult; stdcall;
function Set_TimeBarColor(pColor: OLE_COLOR): HResult; stdcall;
function Get_Highlight(out pbState: WordBool): HResult; stdcall;
function Set_Highlight(pbState: WordBool): HResult; stdcall;
function Get_ShowToolbar(out pbState: WordBool): HResult; stdcall;
function Set_ShowToolbar(pbState: WordBool): HResult; stdcall;
function Paste: HResult; stdcall;
function Copy: HResult; stdcall;
function Reset: HResult; stdcall;
function Set_ReadOnly(pbState: WordBool): HResult; stdcall;
function Get_ReadOnly(out pbState: WordBool): HResult; stdcall;
function Set_ReportValueType(peReportValueType: ReportValueTypeConstants): HResult; stdcall;
function Get_ReportValueType(out peReportValueType: ReportValueTypeConstants): HResult; stdcall;
function Set_MonitorDuplicateInstances(pbState: WordBool): HResult; stdcall;
function Get_MonitorDuplicateInstances(out pbState: WordBool): HResult; stdcall;
function Set_DisplayFilter(piValue: SYSINT): HResult; stdcall;
function Get_DisplayFilter(out piValue: SYSINT): HResult; stdcall;
function Get_LogFiles(out ppILogFiles: ILogFiles): HResult; stdcall;
function Set_DataSourceType(peDataSourceType: DataSourceTypeConstants): HResult; stdcall;
function Get_DataSourceType(out peDataSourceType: DataSourceTypeConstants): HResult; stdcall;
function Set_SqlDsnName(const bsSqlDsnName: WideString): HResult; stdcall;
function Get_SqlDsnName(out bsSqlDsnName: WideString): HResult; stdcall;
function Set_SqlLogSetName(const bsSqlLogSetName: WideString): HResult; stdcall;
function Get_SqlLogSetName(out bsSqlLogSetName: WideString): HResult; stdcall;
end;
// *********************************************************************//
// DispIntf: DISystemMonitorInternal
// Flags: (4112) Hidden Dispatchable
// GUID: {194EB242-C32C-11CF-9398-00AA00A3DDEA}
// *********************************************************************//
DISystemMonitorInternal = dispinterface
['{194EB242-C32C-11CF-9398-00AA00A3DDEA}']
property Appearance: SYSINT dispid -520;
property BackColor: OLE_COLOR dispid -501;
property BorderStyle: SYSINT dispid -504;
property ForeColor: OLE_COLOR dispid -513;
property Font: IFontDisp dispid -512;
property Counters: ICounters readonly dispid 0;
property ShowVerticalGrid: WordBool dispid 1;
property ShowHorizontalGrid: WordBool dispid 2;
property ShowLegend: WordBool dispid 3;
property ShowScaleLabels: WordBool dispid 4;
property ShowValueBar: WordBool dispid 5;
property MaximumScale: SYSINT dispid 6;
property MinimumScale: SYSINT dispid 7;
property UpdateInterval: Single dispid 8;
property DisplayType: DisplayTypeConstants dispid 9;
property ManualUpdate: WordBool dispid 16;
property GraphTitle: WideString dispid 17;
property YAxisLabel: WideString dispid 18;
procedure CollectSample; dispid 20;
procedure UpdateGraph; dispid 21;
procedure BrowseCounters; dispid 22;
procedure DisplayProperties; dispid 23;
procedure Counter(iIndex: SYSINT; out ppICounter: ICounterItem); dispid 24;
procedure AddCounter(const bsPath: WideString; out ppICounter: ICounterItem); dispid 25;
procedure DeleteCounter(const pCtr: ICounterItem); dispid 32;
property BackColorCtl: OLE_COLOR dispid 33;
property LogFileName: WideString dispid 34;
property LogViewStart: TDateTime dispid 35;
property LogViewStop: TDateTime dispid 36;
property GridColor: OLE_COLOR dispid 37;
property TimeBarColor: OLE_COLOR dispid 38;
property Highlight: WordBool dispid 39;
property ShowToolbar: WordBool dispid 40;
procedure Paste; dispid 41;
procedure Copy; dispid 48;
procedure Reset; dispid 49;
property ReadOnly: WordBool dispid 50;
property ReportValueType: ReportValueTypeConstants dispid 51;
property MonitorDuplicateInstances: WordBool dispid 52;
property DisplayFilter: SYSINT dispid 53;
property LogFiles: ILogFiles readonly dispid 54;
property DataSourceType: DataSourceTypeConstants dispid 55;
property SqlDsnName: WideString dispid 56;
property SqlLogSetName: WideString dispid 57;
end;
// *********************************************************************//
// DispIntf: DISystemMonitor
// Flags: (4112) Hidden Dispatchable
// GUID: {13D73D81-C32E-11CF-9398-00AA00A3DDEA}
// *********************************************************************//
DISystemMonitor = dispinterface
['{13D73D81-C32E-11CF-9398-00AA00A3DDEA}']
procedure Reset; dispid 49;
procedure Copy; dispid 48;
procedure Paste; dispid 41;
procedure DisplayProperties; dispid 23;
procedure BrowseCounters; dispid 22;
procedure UpdateGraph; dispid 21;
procedure CollectSample; dispid 20;
property Font: IFontDisp dispid -512;
property BorderStyle: SYSINT dispid -504;
property YAxisLabel: WideString dispid 18;
property ForeColor: OLE_COLOR dispid -513;
property ShowScaleLabels: WordBool dispid 4;
property ShowValueBar: WordBool dispid 5;
property Appearance: SYSINT dispid -520;
property BackColor: OLE_COLOR dispid -501;
property GraphTitle: WideString dispid 17;
property UpdateInterval: Single dispid 8;
property MaximumScale: SYSINT dispid 6;
property DisplayType: DisplayTypeConstants dispid 9;
property ManualUpdate: WordBool dispid 16;
property LogFileName: WideString dispid 34;
property Counters: ICounters dispid 0;
property MinimumScale: SYSINT dispid 7;
property BackColorCtl: OLE_COLOR dispid 33;
property TimeBarColor: OLE_COLOR dispid 38;
property GridColor: OLE_COLOR dispid 37;
property DataSourceType: DataSourceTypeConstants dispid 55;
property ReportValueType: ReportValueTypeConstants dispid 51;
property ShowToolbar: WordBool dispid 40;
property Highlight: WordBool dispid 39;
property LogViewStop: TDateTime dispid 36;
property ReadOnly: WordBool dispid 50;
property SqlDsnName: WideString dispid 56;
property ShowHorizontalGrid: WordBool dispid 2;
property LogViewStart: TDateTime dispid 35;
property ShowLegend: WordBool dispid 3;
property ShowVerticalGrid: WordBool dispid 1;
property MonitorDuplicateInstances: WordBool dispid 52;
property SqlLogSetName: WideString dispid 57;
property LogFiles: ILogFiles dispid 54;
property DisplayFilter: SYSINT dispid 53;
end;
// *********************************************************************//
// Interface: ISystemMonitorEvents
// Flags: (0)
// GUID: {EE660EA0-4ABD-11CF-943A-008029004347}
// *********************************************************************//
ISystemMonitorEvents = interface(IUnknown)
['{EE660EA0-4ABD-11CF-943A-008029004347}']
procedure OnCounterSelected(index: SYSINT); stdcall;
procedure OnCounterAdded(index: SYSINT); stdcall;
procedure OnCounterDeleted(index: SYSINT); stdcall;
procedure OnSampleCollected; stdcall;
procedure OnDblClick(index: SYSINT); stdcall;
end;
// *********************************************************************//
// DispIntf: DISystemMonitorEvents
// Flags: (4096) Dispatchable
// GUID: {84979930-4AB3-11CF-943A-008029004347}
// *********************************************************************//
DISystemMonitorEvents = dispinterface
['{84979930-4AB3-11CF-943A-008029004347}']
procedure OnCounterSelected(iIndex: SYSINT); dispid 1;
procedure OnCounterAdded(iIndex: SYSINT); dispid 2;
procedure OnCounterDeleted(iIndex: SYSINT); dispid 3;
procedure OnSampleCollected; dispid 4;
procedure OnDblClick(index: SYSINT); dispid 5;
end;
// *********************************************************************//
// OLE Control Proxy class declaration
// Control Name : TSystemMonitor_
// Help String : System Monitor Control Type Information
// Default Interface: DISystemMonitor
// Def. Intf. DISP? : Yes
// Event Interface: DISystemMonitorEvents
// TypeFlags : (34) CanCreate Control
// *********************************************************************//
TSystemMonitor_OnCounterSelected = procedure(ASender: TObject; iIndex: SYSINT) of object;
TSystemMonitor_OnCounterAdded = procedure(ASender: TObject; iIndex: SYSINT) of object;
TSystemMonitor_OnCounterDeleted = procedure(ASender: TObject; iIndex: SYSINT) of object;
TSystemMonitor_OnDblClick = procedure(ASender: TObject; index: SYSINT) of object;
TSystemMonitor_ = class(TOleControl)
private
FOnCounterSelected: TSystemMonitor_OnCounterSelected;
FOnCounterAdded: TSystemMonitor_OnCounterAdded;
FOnCounterDeleted: TSystemMonitor_OnCounterDeleted;
FOnSampleCollected: TNotifyEvent;
FOnDblClick: TSystemMonitor_OnDblClick;
FIntf: DISystemMonitor;
function GetControlInterface: DISystemMonitor;
protected
procedure CreateControl;
procedure InitControlData; override;
function Get_Counters: ICounters;
procedure Set_Counters(const Value: ICounters);
function Get_LogFiles: ILogFiles;
procedure Set_LogFiles(const Value: ILogFiles);
public
procedure Reset;
procedure Copy;
procedure Paste;
procedure DisplayProperties;
procedure BrowseCounters;
procedure UpdateGraph;
procedure CollectSample;
property ControlInterface: DISystemMonitor read GetControlInterface;
property DefaultInterface: DISystemMonitor read GetControlInterface;
published
property Anchors;
property ParentColor;
property ParentFont;
property TabStop;
property Align;
property DragCursor;
property DragMode;
property ParentShowHint;
property PopupMenu;
property ShowHint;
property TabOrder;
property Visible;
property OnDragDrop;
property OnDragOver;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnStartDrag;
property Font: TFont index -512 read GetTFontProp write SetTFontProp stored False;
property BorderStyle: Integer index -504 read GetIntegerProp write SetIntegerProp stored False;
property YAxisLabel: WideString index 18 read GetWideStringProp write SetWideStringProp stored False;
property ForeColor: TColor index -513 read GetTColorProp write SetTColorProp stored False;
property ShowScaleLabels: WordBool index 4 read GetWordBoolProp write SetWordBoolProp stored False;
property ShowValueBar: WordBool index 5 read GetWordBoolProp write SetWordBoolProp stored False;
property Appearance: Integer index -520 read GetIntegerProp write SetIntegerProp stored False;
property BackColor: TColor index -501 read GetTColorProp write SetTColorProp stored False;
property GraphTitle: WideString index 17 read GetWideStringProp write SetWideStringProp stored False;
property UpdateInterval: Single index 8 read GetSingleProp write SetSingleProp stored False;
property MaximumScale: Integer index 6 read GetIntegerProp write SetIntegerProp stored False;
property DisplayType: TOleEnum index 9 read GetTOleEnumProp write SetTOleEnumProp stored False;
property ManualUpdate: WordBool index 16 read GetWordBoolProp write SetWordBoolProp stored False;
property LogFileName: WideString index 34 read GetWideStringProp write SetWideStringProp stored False;
property Counters: ICounters read Get_Counters write Set_Counters stored False;
property MinimumScale: Integer index 7 read GetIntegerProp write SetIntegerProp stored False;
property BackColorCtl: TColor index 33 read GetTColorProp write SetTColorProp stored False;
property TimeBarColor: TColor index 38 read GetTColorProp write SetTColorProp stored False;
property GridColor: TColor index 37 read GetTColorProp write SetTColorProp stored False;
property DataSourceType: TOleEnum index 55 read GetTOleEnumProp write SetTOleEnumProp stored False;
property ReportValueType: TOleEnum index 51 read GetTOleEnumProp write SetTOleEnumProp stored False;
property ShowToolbar: WordBool index 40 read GetWordBoolProp write SetWordBoolProp stored False;
property Highlight: WordBool index 39 read GetWordBoolProp write SetWordBoolProp stored False;
property LogViewStop: TDateTime index 36 read GetTDateTimeProp write SetTDateTimeProp stored False;
property ReadOnly: WordBool index 50 read GetWordBoolProp write SetWordBoolProp stored False;
property SqlDsnName: WideString index 56 read GetWideStringProp write SetWideStringProp stored False;
property ShowHorizontalGrid: WordBool index 2 read GetWordBoolProp write SetWordBoolProp stored False;
property LogViewStart: TDateTime index 35 read GetTDateTimeProp write SetTDateTimeProp stored False;
property ShowLegend: WordBool index 3 read GetWordBoolProp write SetWordBoolProp stored False;
property ShowVerticalGrid: WordBool index 1 read GetWordBoolProp write SetWordBoolProp stored False;
property MonitorDuplicateInstances: WordBool index 52 read GetWordBoolProp write SetWordBoolProp stored False;
property SqlLogSetName: WideString index 57 read GetWideStringProp write SetWideStringProp stored False;
property LogFiles: ILogFiles read Get_LogFiles write Set_LogFiles stored False;
property DisplayFilter: Integer index 53 read GetIntegerProp write SetIntegerProp stored False;
property OnCounterSelected: TSystemMonitor_OnCounterSelected read FOnCounterSelected write FOnCounterSelected;
property OnCounterAdded: TSystemMonitor_OnCounterAdded read FOnCounterAdded write FOnCounterAdded;
property OnCounterDeleted: TSystemMonitor_OnCounterDeleted read FOnCounterDeleted write FOnCounterDeleted;
property OnSampleCollected: TNotifyEvent read FOnSampleCollected write FOnSampleCollected;
property OnDblClick: TSystemMonitor_OnDblClick read FOnDblClick write FOnDblClick;
end;
// *********************************************************************//
// OLE Control Proxy class declaration
// Control Name : TCounterItem
// Help String : System Monitor Counter Item Type Information
// Default Interface: DICounterItem
// Def. Intf. DISP? : Yes
// Event Interface:
// TypeFlags : (34) CanCreate Control
// *********************************************************************//
TCounterItem = class(TOleControl)
private
FIntf: DICounterItem;
function GetControlInterface: DICounterItem;
protected
procedure CreateControl;
procedure InitControlData; override;
public
procedure GetValue(out Value: Double; out Status: Integer);
procedure GetStatistics(out Max: Double; out Min: Double; out Avg: Double; out Status: Integer);
property ControlInterface: DICounterItem read GetControlInterface;
property DefaultInterface: DICounterItem read GetControlInterface;
property Value: Double index 0 read GetDoubleProp;
property Path: WideString index 5 read GetWideStringProp;
published
property Anchors;
property Color: TColor index 1 read GetTColorProp write SetTColorProp stored False;
property LineStyle: Integer index 3 read GetIntegerProp write SetIntegerProp stored False;
property ScaleFactor: Integer index 4 read GetIntegerProp write SetIntegerProp stored False;
end;
// *********************************************************************//
// The Class CoCounters provides a Create and CreateRemote method to
// create instances of the default interface ICounters exposed by
// the CoClass Counters. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoCounters = class
class function Create: ICounters;
class function CreateRemote(const MachineName: string): ICounters;
end;
// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TCounters
// Help String : System Monitor Counter Collection Type Information
// Default Interface: ICounters
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TCountersProperties= class;
{$ENDIF}
TCounters = class(TOleServer)
private
FIntf: ICounters;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TCountersProperties;
function GetServerProperties: TCountersProperties;
{$ENDIF}
function GetDefaultInterface: ICounters;
protected
procedure InitServerData; override;
function Get_Count: Integer;
function Get_Item(index: OleVariant): DICounterItem;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: ICounters);
procedure Disconnect; override;
function Add(const pathname: WideString): DICounterItem;
procedure Remove(index: OleVariant);
property DefaultInterface: ICounters read GetDefaultInterface;
property Count: Integer read Get_Count;
property Item[index: OleVariant]: DICounterItem read Get_Item; default;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TCountersProperties read GetServerProperties;
{$ENDIF}
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TCounters
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TCountersProperties = class(TPersistent)
private
FServer: TCounters;
function GetDefaultInterface: ICounters;
constructor Create(AServer: TCounters);
protected
function Get_Count: Integer;
function Get_Item(index: OleVariant): DICounterItem;
public
property DefaultInterface: ICounters read GetDefaultInterface;
published
end;
{$ENDIF}
// *********************************************************************//
// OLE Control Proxy class declaration
// Control Name : TLogFileItem
// Help String : System Monitor Log File Item Type Information
// Default Interface: DILogFileItem
// Def. Intf. DISP? : Yes
// Event Interface:
// TypeFlags : (34) CanCreate Control
// *********************************************************************//
TLogFileItem = class(TOleControl)
private
FIntf: DILogFileItem;
function GetControlInterface: DILogFileItem;
protected
procedure CreateControl;
procedure InitControlData; override;
public
property ControlInterface: DILogFileItem read GetControlInterface;
property DefaultInterface: DILogFileItem read GetControlInterface;
property Path: WideString index 0 read GetWideStringProp;
published
property Anchors;
end;
// *********************************************************************//
// The Class CoLogFiles provides a Create and CreateRemote method to
// create instances of the default interface ILogFiles exposed by
// the CoClass LogFiles. The functions are intended to be used by
// clients wishing to automate the CoClass objects exposed by the
// server of this typelibrary.
// *********************************************************************//
CoLogFiles = class
class function Create: ILogFiles;
class function CreateRemote(const MachineName: string): ILogFiles;
end;
// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object : TLogFiles
// Help String : System Monitor Log File Collection Type Information
// Default Interface: ILogFiles
// Def. Intf. DISP? : No
// Event Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
TLogFilesProperties= class;
{$ENDIF}
TLogFiles = class(TOleServer)
private
FIntf: ILogFiles;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps: TLogFilesProperties;
function GetServerProperties: TLogFilesProperties;
{$ENDIF}
function GetDefaultInterface: ILogFiles;
protected
procedure InitServerData; override;
function Get_Count: Integer;
function Get_Item(index: OleVariant): DILogFileItem;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Connect; override;
procedure ConnectTo(svrIntf: ILogFiles);
procedure Disconnect; override;
function Add(const pathname: WideString): DILogFileItem;
procedure Remove(index: OleVariant);
property DefaultInterface: ILogFiles read GetDefaultInterface;
property Count: Integer read Get_Count;
property Item[index: OleVariant]: DILogFileItem read Get_Item; default;
published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
property Server: TLogFilesProperties read GetServerProperties;
{$ENDIF}
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object : TLogFiles
// (This object is used by the IDE's Property Inspector to allow editing
// of the properties of this server)
// *********************************************************************//
TLogFilesProperties = class(TPersistent)
private
FServer: TLogFiles;
function GetDefaultInterface: ILogFiles;
constructor Create(AServer: TLogFiles);
protected
function Get_Count: Integer;
function Get_Item(index: OleVariant): DILogFileItem;
public
property DefaultInterface: ILogFiles read GetDefaultInterface;
published
end;
{$ENDIF}
procedure Register;
resourcestring
dtlServerPage = 'ActiveX';
dtlOcxPage = 'ActiveX';
implementation
uses ComObj;
procedure TSystemMonitor_.InitControlData;
const
CEventDispIDs: array [0..4] of DWORD = (
$00000001, $00000002, $00000003, $00000004, $00000005);
CTFontIDs: array [0..0] of DWORD = (
$FFFFFE00);
CControlData: TControlData2 = (
ClassID: '{C4D2D8E0-D1DD-11CE-940F-008029004347}';
EventIID: '{84979930-4AB3-11CF-943A-008029004347}';
EventCount: 5;
EventDispIDs: @CEventDispIDs;
LicenseKey: nil (*HR:$80004002*);
Flags: $00000007;
Version: 401;
FontCount: 1;
FontIDs: @CTFontIDs);
begin
ControlData := @CControlData;
TControlData2(CControlData).FirstEventOfs := Cardinal(@@FOnCounterSelected) - Cardinal(Self);
end;
procedure TSystemMonitor_.CreateControl;
procedure DoCreate;
begin
FIntf := IUnknown(OleObject) as DISystemMonitor;
end;
begin
if FIntf = nil then DoCreate;
end;
function TSystemMonitor_.GetControlInterface: DISystemMonitor;
begin
CreateControl;
Result := FIntf;
end;
function TSystemMonitor_.Get_Counters: ICounters;
begin
Result := DefaultInterface.Counters;
end;
procedure TSystemMonitor_.Set_Counters(const Value: ICounters);
begin
DefaultInterface.Counters := Value;
end;
function TSystemMonitor_.Get_LogFiles: ILogFiles;
begin
Result := DefaultInterface.LogFiles;
end;
procedure TSystemMonitor_.Set_LogFiles(const Value: ILogFiles);
begin
DefaultInterface.LogFiles := Value;
end;
procedure TSystemMonitor_.Reset;
begin
DefaultInterface.Reset;
end;
procedure TSystemMonitor_.Copy;
begin
DefaultInterface.Copy;
end;
procedure TSystemMonitor_.Paste;
begin
DefaultInterface.Paste;
end;
procedure TSystemMonitor_.DisplayProperties;
begin
DefaultInterface.DisplayProperties;
end;
procedure TSystemMonitor_.BrowseCounters;
begin
DefaultInterface.BrowseCounters;
end;
procedure TSystemMonitor_.UpdateGraph;
begin
DefaultInterface.UpdateGraph;
end;
procedure TSystemMonitor_.CollectSample;
begin
DefaultInterface.CollectSample;
end;
procedure TCounterItem.InitControlData;
const
CControlData: TControlData2 = (
ClassID: '{C4D2D8E0-D1DD-11CE-940F-008029004348}';
EventIID: '';
EventCount: 0;
EventDispIDs: nil;
LicenseKey: nil (*HR:$80040154*);
Flags: $00000000;
Version: 401);
begin
ControlData := @CControlData;
end;
procedure TCounterItem.CreateControl;
procedure DoCreate;
begin
FIntf := IUnknown(OleObject) as DICounterItem;
end;
begin
if FIntf = nil then DoCreate;
end;
function TCounterItem.GetControlInterface: DICounterItem;
begin
CreateControl;
Result := FIntf;
end;
procedure TCounterItem.GetValue(out Value: Double; out Status: Integer);
begin
DefaultInterface.GetValue(Value, Status);
end;
procedure TCounterItem.GetStatistics(out Max: Double; out Min: Double; out Avg: Double;
out Status: Integer);
begin
DefaultInterface.GetStatistics(Max, Min, Avg, Status);
end;
class function CoCounters.Create: ICounters;
begin
Result := CreateComObject(CLASS_Counters) as ICounters;
end;
class function CoCounters.CreateRemote(const MachineName: string): ICounters;
begin
Result := CreateRemoteComObject(MachineName, CLASS_Counters) as ICounters;
end;
procedure TCounters.InitServerData;
const
CServerData: TServerData = (
ClassID: '{B2B066D2-2AAC-11CF-942F-008029004347}';
IntfIID: '{79167962-28FC-11CF-942F-008029004347}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;
procedure TCounters.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as ICounters;
end;
end;
procedure TCounters.ConnectTo(svrIntf: ICounters);
begin
Disconnect;
FIntf := svrIntf;
end;
procedure TCounters.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;
function TCounters.GetDefaultInterface: ICounters;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;
constructor TCounters.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TCountersProperties.Create(Self);
{$ENDIF}
end;
destructor TCounters.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TCounters.GetServerProperties: TCountersProperties;
begin
Result := FProps;
end;
{$ENDIF}
function TCounters.Get_Count: Integer;
begin
Result := DefaultInterface.Count;
end;
function TCounters.Get_Item(index: OleVariant): DICounterItem;
begin
Result := DefaultInterface.Item[index];
end;
function TCounters.Add(const pathname: WideString): DICounterItem;
begin
Result := DefaultInterface.Add(pathname);
end;
procedure TCounters.Remove(index: OleVariant);
begin
DefaultInterface.Remove(index);
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TCountersProperties.Create(AServer: TCounters);
begin
inherited Create;
FServer := AServer;
end;
function TCountersProperties.GetDefaultInterface: ICounters;
begin
Result := FServer.DefaultInterface;
end;
function TCountersProperties.Get_Count: Integer;
begin
Result := DefaultInterface.Count;
end;
function TCountersProperties.Get_Item(index: OleVariant): DICounterItem;
begin
Result := DefaultInterface.Item[index];
end;
{$ENDIF}
procedure TLogFileItem.InitControlData;
const
CControlData: TControlData2 = (
ClassID: '{16EC5BE8-DF93-4237-94E4-9EE918111D71}';
EventIID: '';
EventCount: 0;
EventDispIDs: nil;
LicenseKey: nil (*HR:$80040154*);
Flags: $00000000;
Version: 401);
begin
ControlData := @CControlData;
end;
procedure TLogFileItem.CreateControl;
procedure DoCreate;
begin
FIntf := IUnknown(OleObject) as DILogFileItem;
end;
begin
if FIntf = nil then DoCreate;
end;
function TLogFileItem.GetControlInterface: DILogFileItem;
begin
CreateControl;
Result := FIntf;
end;
class function CoLogFiles.Create: ILogFiles;
begin
Result := CreateComObject(CLASS_LogFiles) as ILogFiles;
end;
class function CoLogFiles.CreateRemote(const MachineName: string): ILogFiles;
begin
Result := CreateRemoteComObject(MachineName, CLASS_LogFiles) as ILogFiles;
end;
procedure TLogFiles.InitServerData;
const
CServerData: TServerData = (
ClassID: '{2735D9FD-F6B9-4F19-A5D9-E2D068584BC5}';
IntfIID: '{6A2A97E6-6851-41EA-87AD-2A8225335865}';
EventIID: '';
LicenseKey: nil;
Version: 500);
begin
ServerData := @CServerData;
end;
procedure TLogFiles.Connect;
var
punk: IUnknown;
begin
if FIntf = nil then
begin
punk := GetServer;
Fintf:= punk as ILogFiles;
end;
end;
procedure TLogFiles.ConnectTo(svrIntf: ILogFiles);
begin
Disconnect;
FIntf := svrIntf;
end;
procedure TLogFiles.DisConnect;
begin
if Fintf <> nil then
begin
FIntf := nil;
end;
end;
function TLogFiles.GetDefaultInterface: ILogFiles;
begin
if FIntf = nil then
Connect;
Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
Result := FIntf;
end;
constructor TLogFiles.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps := TLogFilesProperties.Create(Self);
{$ENDIF}
end;
destructor TLogFiles.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
FProps.Free;
{$ENDIF}
inherited Destroy;
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TLogFiles.GetServerProperties: TLogFilesProperties;
begin
Result := FProps;
end;
{$ENDIF}
function TLogFiles.Get_Count: Integer;
begin
Result := DefaultInterface.Count;
end;
function TLogFiles.Get_Item(index: OleVariant): DILogFileItem;
begin
Result := DefaultInterface.Item[index];
end;
function TLogFiles.Add(const pathname: WideString): DILogFileItem;
begin
Result := DefaultInterface.Add(pathname);
end;
procedure TLogFiles.Remove(index: OleVariant);
begin
DefaultInterface.Remove(index);
end;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TLogFilesProperties.Create(AServer: TLogFiles);
begin
inherited Create;
FServer := AServer;
end;
function TLogFilesProperties.GetDefaultInterface: ILogFiles;
begin
Result := FServer.DefaultInterface;
end;
function TLogFilesProperties.Get_Count: Integer;
begin
Result := DefaultInterface.Count;
end;
function TLogFilesProperties.Get_Item(index: OleVariant): DILogFileItem;
begin
Result := DefaultInterface.Item[index];
end;
{$ENDIF}
procedure Register;
begin
RegisterComponents(dtlOcxPage, [TSystemMonitor_, TCounterItem, TLogFileItem]);
RegisterComponents(dtlServerPage, [TCounters, TLogFiles]);
end;
end.