/*++ Copyright (C) 1996-1999 Microsoft Corporation Module Name: smonctrl.odl Abstract: --*/ #include #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; } };