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.