Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

707 lines
21 KiB

/*++
Copyright (C) 1996-1999 Microsoft Corporation
Module Name:
smonctrl.odl
Abstract:
<abstract>
--*/
#include <olectl.h>
#define DISPID_VALUE 0
#define DISPID_NEWENUM -4
//LIBID_SystemMonitor
[
uuid(1B773E42-2509-11cf-942F-008029004347)
, helpstring("System Monitor Control")
, lcid(0x0000)
, version(3.4)
]
library SystemMonitor
{
//importlib("stdole32.tlb");
importlib(STDOLE_TLB);
importlib(STDTYPE_TLB);
// Display type constants
typedef
[
helpstring("System Monitor display type constants")
]
enum eDisplayTypeConstant {
[helpstring("Line graph.")] sysmonLineGraph = 0x0001,
[helpstring("Histogram.")] sysmonHistogram = 0x0002,
[helpstring("Report.")] sysmonReport = 0x0003
} DisplayTypeConstants;
// Report value type constants
typedef
[
helpstring("System Monitor report value type constants")
]
enum eReportValueTypeConstant {
[helpstring("Use default.")]
sysmonDefaultValue = 0x0000,
[helpstring("Current value.")]
sysmonCurrentValue = 0x0001,
[helpstring("Average value over the graph display interval.")]
sysmonAverage = 0x0002,
[helpstring("Minimum value in the graph display interval.")]
sysmonMinimum = 0x0003,
[helpstring("Maximum value in the graph display interval.")]
sysmonMaximum = 0x0004
} ReportValueTypeConstants;
// Data source type constants
typedef
[
helpstring("System Monitor data source type constants")
]
enum eDataSourceTypeConstant {
[helpstring("No data source.")] sysmonNullDataSource = 0xFFFFFFFF,
[helpstring("Current activity.")] sysmonCurrentActivity = 0x0001,
[helpstring("Log files.")] sysmonLogFiles = 0x0002,
[helpstring("SQL Log.")] sysmonSqlLog = 0x0003
} DataSourceTypeConstants;
//IID_ICounterItem
[
uuid(771A9520-EE28-11ce-941E-008029004347)
, helpstring("Definition of interface ICounterItem")
, hidden
, odl
]
interface ICounterItem : IUnknown
{
//Properties
[id(DISPID_VALUE), propget, helpstring("Current value.")]
HRESULT Value([out, retval] double *pdblValue);
[id(1), propput, helpstring("Color.")]
HRESULT Color([in] OLE_COLOR Color);
[id(1), propget]
HRESULT Color([out, retval] OLE_COLOR *pColor);
[id(2), propput, helpstring("Width.")]
HRESULT Width([in] INT iWidth);
[id(2), propget]
HRESULT Width([out, retval] INT *piValue);
[id(3), propput, helpstring("Line style.")]
HRESULT LineStyle([in] INT iLineStyle);
[id(3), propget]
HRESULT LineStyle([out, retval] INT *piValue);
[id(4), propput, helpstring("Scale factor.")]
HRESULT ScaleFactor([in] INT iScale);
[id(4), propget]
HRESULT ScaleFactor([out, retval] INT *piValue);
[id(5), propget]
HRESULT Path([out, retval] BSTR *pstrValue);
//Beta 1: [id(6), propget, helpstring("Current value.")]
HRESULT GetValue([out]double *Value, [out]long *Status);
HRESULT GetStatistics([out]double *Max, [out]double *Min,
[out]double *Avg, [out]long *Status);
}
//DIID_DICounterItem
[
uuid(C08C4FF2-0E2E-11cf-942C-008029004347)
, hidden
, helpstring("Definition of dispinterface DICounterItem")
]
dispinterface DICounterItem
{
interface ICounterItem;
}
//
// IID_ICounters
//
[
uuid(79167962-28FC-11cf-942F-008029004347),
helpstring("Counter collection"),
dual,
hidden,
odl
]
interface ICounters : IDispatch
{
[propget]
HRESULT Count([out,retval]long *pLong);
[propget, restricted, id(DISPID_NEWENUM)]
HRESULT _NewEnum([out,retval]IUnknown** ppIunk);
[propget, id(DISPID_VALUE)]
HRESULT Item([in]VARIANT index,[out,retval]DICounterItem **ppI);
HRESULT Add([in]BSTR pathname, [out,retval]DICounterItem **ppI);
HRESULT Remove([in]VARIANT index);
}
//IID_ILogFileItem
[
uuid(D6B518DD-05C7-418a-89E6-4F9CE8C6841E)
, helpstring("Definition of interface ILogFileItem")
, hidden
, odl
]
interface ILogFileItem : IUnknown
{
//Properties
[id(DISPID_VALUE), propget, helpstring("Log file path.")]
HRESULT Path([out, retval] BSTR *pstrValue);
}
//DIID_DILogFileItem
[
uuid(8D093FFC-F777-4917-82D1-833FBC54C58F)
, hidden
, helpstring("Definition of dispinterface DILogFileItem")
]
dispinterface DILogFileItem
{
interface ILogFileItem;
}
//
// IID_ILogFiles
//
[
uuid(6A2A97E6-6851-41ea-87AD-2A8225335865),
helpstring("Log file collection"),
dual,
hidden,
odl
]
interface ILogFiles : IDispatch
{
[propget]
HRESULT Count([out,retval]long *pLong);
[propget, restricted, id(DISPID_NEWENUM)]
HRESULT _NewEnum([out,retval]IUnknown** ppIunk);
[propget, id(DISPID_VALUE)]
HRESULT Item([in]VARIANT index,[out,retval]DILogFileItem **ppI);
HRESULT Add([in]BSTR pathname, [out,retval]DILogFileItem **ppI);
HRESULT Remove([in]VARIANT index);
}
//
// IID_ISystemMonitor
//
[
uuid(194EB241-C32C-11cf-9398-00AA00A3DDEA)
, helpstring("Definition of interface ISystemMonitor")
, hidden
, odl
]
interface ISystemMonitor : IUnknown
{
//Properties
[id(DISPID_APPEARANCE), propget, helpstring("The appearance.")]
HRESULT Appearance([out, retval] INT *iAppearance);
[id(DISPID_APPEARANCE), propput]
HRESULT Appearance([in] INT iAppearance);
[id(DISPID_BACKCOLOR), propget, helpstring("The background color.")]
HRESULT BackColor([out, retval] OLE_COLOR *pColor);
[id(DISPID_BACKCOLOR), propput]
HRESULT BackColor([in] OLE_COLOR Color);
[id(DISPID_BORDERSTYLE), propget, helpstring("The border style.")]
HRESULT BorderStyle([out, retval] INT *iBorderStyle);
[id(DISPID_BORDERSTYLE), propput]
HRESULT BorderStyle([in] INT iBorderStyle);
[id(DISPID_FORECOLOR), propget, helpstring("The foreground color.")]
HRESULT ForeColor([out, retval] OLE_COLOR *pColor);
[id(DISPID_FORECOLOR), propput]
HRESULT ForeColor([in] OLE_COLOR Color);
[id(DISPID_FONT), propget, helpstring("The font for all text.")]
HRESULT Font([out,retval] IFontDisp **ppFont);
[id(DISPID_FONT), propputref]
HRESULT Font([in] IFontDisp *pFont);
[id(DISPID_VALUE), propget, helpstring("The counter collection.")]
HRESULT Counters([out, retval] ICounters **ppICounters);
[id(1), propput, helpstring("Show vertical grid.")]
HRESULT ShowVerticalGrid([in] boolean bState);
[id(1), propget]
HRESULT ShowVerticalGrid([out, retval] boolean *pbState);
[id(2), propput, helpstring("Show horizontal grid.")]
HRESULT ShowHorizontalGrid([in] boolean bState);
[id(2), propget]
HRESULT ShowHorizontalGrid([out, retval] boolean *pbState);
[id(3), propput, helpstring("Show counters legend.")]
HRESULT ShowLegend([in] boolean bState);
[id(3), propget]
HRESULT ShowLegend([out, retval] boolean *pbState);
[id(4), propput, helpstring("Show scale labels.")]
HRESULT ShowScaleLabels([in] boolean bState);
[id(4), propget]
HRESULT ShowScaleLabels([out, retval] boolean *pbState);
[id(5), propput, helpstring("Show value bar.")]
HRESULT ShowValueBar([in] boolean bState);
[id(5), propget]
HRESULT ShowValueBar([out, retval] boolean *pbState);
[id(6), propput, helpstring("Maximum scale value.")]
HRESULT MaximumScale([in] INT iValue);
[id(6), propget]
HRESULT MaximumScale([out, retval] INT *piValue);
[id(7), propput, helpstring("Minimum scale value.")]
HRESULT MinimumScale([in] INT iValue);
[id(7), propget]
HRESULT MinimumScale([out, retval] INT *piValue);
[id(8), propput, helpstring("Data sample interval.")]
HRESULT UpdateInterval([in] FLOAT fValue);
[id(8), propget]
HRESULT UpdateInterval([out, retval] FLOAT *pfValue);
[id(9), propput, helpstring("Display type.")]
HRESULT DisplayType([in] DisplayTypeConstants eDisplayType);
[id(9), propget]
HRESULT DisplayType([out, retval] DisplayTypeConstants *peDisplayType);
[id(10), propput, helpstring("Manual update.")]
HRESULT ManualUpdate([in] boolean bState);
[id(10), propget]
HRESULT ManualUpdate([out, retval] boolean *pbState);
[id(11), propput, helpstring("Graph title.")]
HRESULT GraphTitle([in] BSTR bsTitle);
[id(11), propget]
HRESULT GraphTitle([out, retval] BSTR *pbsTitle);
[id(12), propput, helpstring("Y axis label.")]
HRESULT YAxisLabel([in] BSTR bsTitle);
[id(12), propget]
HRESULT YAxisLabel([out, retval] BSTR *pbsTitle);
//Beta 1: [id(13), propget, helpstring("Counter collection.")]
[id(14), helpstring("Collect sample for each counter.")]
HRESULT CollectSample(void);
[id(15), helpstring("Apply visual changes to graph.")]
HRESULT UpdateGraph(void);
[id(16), helpstring("Display counter browser.")]
HRESULT BrowseCounters(void);
[id(17), helpstring("Display properties.")]
HRESULT DisplayProperties(void);
[id(18), hidden]
HRESULT Counter([in] INT iIndex, [out] ICounterItem **ppICounter);
[id(19), hidden]
HRESULT AddCounter([in] BSTR bsPath, [out] ICounterItem **ppICounter);
[id(20), hidden]
HRESULT DeleteCounter([in] ICounterItem *pCtr);
[id(21), propget, helpstring("Control panel background color.")]
HRESULT BackColorCtl([out, retval] OLE_COLOR *pColor);
[id(21), propput]
HRESULT BackColorCtl([in] OLE_COLOR Color);
[id(22), propput, helpstring("Log file name.")]
HRESULT LogFileName([in] BSTR bsFileName);
[id(22), propget]
HRESULT LogFileName([out, retval] BSTR *bsFileName);
[id(23), propput, helpstring("Start time of log file view.")]
HRESULT LogViewStart([in] DATE StartTime);
[id(23), propget]
HRESULT LogViewStart([out, retval] DATE *StartTime);
[id(24), propput, helpstring("Stop time of log file view.")]
HRESULT LogViewStop([in] DATE StopTime);
[id(24), propget]
HRESULT LogViewStop([out, retval] DATE *StopTime);
[id(25), propget, helpstring("Graph grid color.")]
HRESULT GridColor([out, retval] OLE_COLOR *pColor);
[id(25), propput]
HRESULT GridColor([in] OLE_COLOR Color);
[id(26), propget, helpstring("Graph time bar color.")]
HRESULT TimeBarColor([out, retval] OLE_COLOR *pColor);
[id(26), propput]
HRESULT TimeBarColor([in] OLE_COLOR Color);
[id(27), propget, helpstring("Highlight the selected counter..")]
HRESULT Highlight([out, retval] boolean *pbState);
[id(27), propput]
HRESULT Highlight([in] boolean bState);
[id(28), propget, helpstring("Show the toolbar")]
HRESULT ShowToolbar([out, retval] boolean *pbState);
[id(28), propput]
HRESULT ShowToolbar([in] boolean bState);
[id(29), helpstring("Paste Counters from clipboard.")]
HRESULT Paste (void);
[id(30), helpstring("Copy Counters to clipboard.")]
HRESULT Copy (void);
[id(31), helpstring("Delete all counters in the control.")]
HRESULT Reset (void);
[id(32), propput, helpstring("Disallow property modifications.")]
HRESULT ReadOnly([in] boolean bState);
[id(32), propget]
HRESULT ReadOnly([out, retval] boolean *pbState);
[id(33), propput, helpstring("Report value.")]
HRESULT ReportValueType([in] ReportValueTypeConstants eReportValueType);
[id(33), propget]
HRESULT ReportValueType([out, retval] ReportValueTypeConstants *peReportValueType);
[id(34), propput, helpstring("Allow monitoring of duplicate counter instances.")]
HRESULT MonitorDuplicateInstances([in] boolean bState);
[id(34), propget]
HRESULT MonitorDuplicateInstances([out, retval] boolean* pbState);
[id(35), propput, helpstring("Number of samples per display interval.")]
HRESULT DisplayFilter([in] INT iValue);
[id(35), propget]
HRESULT DisplayFilter([out, retval] INT* piValue);
[id(36), propget, helpstring("The log file collection.")]
HRESULT LogFiles([out, retval] ILogFiles** ppILogFiles);
[id(37), propput, helpstring("Data source type.")]
HRESULT DataSourceType([in] DataSourceTypeConstants eDataSourceType);
[id(37), propget]
HRESULT DataSourceType([out, retval] DataSourceTypeConstants *peDataSourceType);
[id(38), propput, helpstring("SQL DSN name.")]
HRESULT SqlDsnName([in] BSTR bsSqlDsnName);
[id(38), propget]
HRESULT SqlDsnName([out, retval] BSTR *bsSqlDsnName);
[id(39), propput, helpstring("SQL logset name.")]
HRESULT SqlLogSetName([in] BSTR bsSqlLogSetName);
[id(39), propget]
HRESULT SqlLogSetName([out, retval] BSTR *bsSqlLogSetName);
}
//
//DIID_DISystemMonitorInternal
//
[
uuid(194EB242-C32C-11cf-9398-00AA00A3DDEA)
, hidden
, helpstring("Definition of dispinterface DISystemMonitorInternal`")
]
dispinterface DISystemMonitorInternal
{
interface ISystemMonitor;
}
//DIID_DISystemMonitor
[
uuid(13D73D81-C32E-11cf-9398-00AA00A3DDEA)
, hidden
, helpstring("Definition of dispinterface DISystemMonitor")
]
dispinterface DISystemMonitor
{
properties:
[id(DISPID_APPEARANCE), helpstring("The appearance.")] INT Appearance;
[id(DISPID_BACKCOLOR), helpstring("The background color.")] OLE_COLOR BackColor;
[id(DISPID_BORDERSTYLE), helpstring("The border style.")] INT BorderStyle;
[id(DISPID_FORECOLOR), helpstring("The foreground color.")] OLE_COLOR ForeColor;
[id(DISPID_FONT), helpstring("The font for all text.")] IFontDisp *Font;
[id(1), helpstring("Show vertical grid.")] boolean ShowVerticalGrid;
[id(2), helpstring("Show horizontal grid.")] boolean ShowHorizontalGrid;
[id(3), helpstring("Show counters legend.")] boolean ShowLegend;
[id(4), helpstring("Show scale labels.")] boolean ShowScaleLabels;
[id(5), helpstring("Show value bar.")] boolean ShowValueBar;
[id(6), helpstring("Maximum scale value.")] INT MaximumScale;
[id(7), helpstring("Minimum scale value.")] INT MinimumScale;
[id(8), helpstring("Data sample interval.")] FLOAT UpdateInterval;
[id(9), helpstring("Display type.")] DisplayTypeConstants DisplayType;
[id(10), helpstring("Manual update.")] boolean ManualUpdate;
[id(11), helpstring("Graph title.")] BSTR GraphTitle;
[id(12), helpstring("Y axis label.")] BSTR YAxisLabel;
[id(DISPID_VALUE), helpstring("The counter collection.")] ICounters *Counters;
//[id(13)] ICounters *Counters;
[id(21), helpstring("Control panel background color.")] OLE_COLOR BackColorCtl;
[id(22), helpstring("Log file name.")] BSTR LogFileName;
[id(23), helpstring("Start time of log file view.")] DATE LogViewStart;
[id(24), helpstring("Stop time of log file view.")] DATE LogViewStop;
[id(25), helpstring("Graph grid color.")] OLE_COLOR GridColor;
[id(26), helpstring("Graph time bar color.")] OLE_COLOR TimeBarColor;
[id(27), helpstring("Highlight the selected counter.")] boolean Highlight;
[id(28), helpstring("Show the toolbar")] boolean ShowToolbar;
[id(32), helpstring("Disallow property modifications.")] boolean ReadOnly;
[id(33), helpstring("Report value.")] ReportValueTypeConstants ReportValueType;
[id(34), helpstring("Allow monitoring of duplicate counter instances.")] boolean MonitorDuplicateInstances;
[id(35), helpstring("Number of samples per display interval.")] INT DisplayFilter;
[id(36), helpstring("The log file collection.")] ILogFiles* LogFiles;
[id(37), helpstring("Data source type.")] DataSourceTypeConstants DataSourceType;
[id(38), helpstring("SQL DSN name.")] BSTR SqlDsnName;
[id(39), helpstring("SQL logset name.")] BSTR SqlLogSetName;
methods:
[id(14), helpstring("Collect sample for each counter.")]
void CollectSample(void);
[id(15), helpstring("Apply visual changes to graph.")]
void UpdateGraph(void);
[id(16), helpstring("Display counter browser.")]
void BrowseCounters(void);
[id(17), helpstring("Display properties.")]
void DisplayProperties(void);
/*
[id(18), hidden]
void Counter([in] INT iIndex, [out] ICounterItem **ppICounter);
[id(19), hidden]
void AddCounter([in] BSTR bsPath, [out] ICounterItem **ppICounter);
[id(20), hidden]
void DeleteCounter([in] ICounterItem *pCtr);
*/
[id(29), helpstring("Paste Counters from clipboard.")]
void Paste (void);
[id(30), helpstring("Copy Counters to clipboard.")]
void Copy (void);
[id(31), helpstring("Delete all counters in the control.")]
void Reset (void);
}
//IID_ISystemMonitorEvents
[
uuid(EE660EA0-4ABD-11cf-943A-008029004347)
, helpstring("System Monitor Events")
, odl
]
interface ISystemMonitorEvents : IUnknown
{
[id(1), helpstring("A counter was selected.")]
void OnCounterSelected([in] INT Index);
[id(2), helpstring("A counter was added.")]
void OnCounterAdded([in] INT Index);
[id(3), helpstring("A counter was deleted.")]
void OnCounterDeleted([in] INT Index);
[id(4), helpstring("A sample of all counter values was collected.")]
void OnSampleCollected(void);
[id(5), helpstring("The left mouse button was double clicked.")]
void OnDblClick([in] INT Index);
}
//
// DIID_DISystemMonitorEvents
//
[
uuid(84979930-4AB3-11cf-943A-008029004347)
, helpstring("System Monitor Events")
]
dispinterface DISystemMonitorEvents
{
properties:
methods:
[id(1), helpstring("A counter was selected.")]
void OnCounterSelected([in] INT iIndex);
[id(2), helpstring("A counter was added.")]
void OnCounterAdded([in] INT iIndex);
[id(3), helpstring("A counter was deleted.")]
void OnCounterDeleted([in] INT iIndex);
[id(4), helpstring("A sample of all counter values was collected.")]
void OnSampleCollected(void);
[id(5), helpstring("The left mouse button was double clicked.")]
void OnDblClick([in ] INT Index);
}
//
// CLSID_SystemMonitor
//
[
uuid(C4D2D8E0-D1DD-11ce-940F-008029004347)
, helpstring("System Monitor Control Type Information")
, control
]
coclass SystemMonitor
{
[default] dispinterface DISystemMonitor;
interface ISystemMonitor;
[default, source] dispinterface DISystemMonitorEvents;
}
//
// CLSID_CounterItem
//
[
uuid(C4D2D8E0-D1DD-11ce-940F-008029004348)
, helpstring("System Monitor Counter Item Type Information")
, control
]
coclass CounterItem
{
[default] dispinterface DICounterItem;
interface ICounterItem;
}
//
// CLSID_Counters
//
[
uuid(B2B066D2-2AAC-11cf-942F-008029004347)
, helpstring("System Monitor Counter Collection Type Information")
]
coclass Counters
{
interface ICounters;
}
//
// CLSID_LogFileItem
//
[
uuid(16EC5BE8-DF93-4237-94E4-9EE918111D71)
, helpstring("System Monitor Log File Item Type Information")
, control
]
coclass LogFileItem
{
[default] dispinterface DILogFileItem;
interface ILogFileItem;
}
//
// CLSID_LogFiles
//
[
uuid(2735D9FD-F6B9-4f19-A5D9-E2D068584BC5)
, helpstring("System Monitor Log File Collection Type Information")
]
coclass LogFiles
{
interface ILogFiles;
}
};