//----------------------------------------------------------------------------- // Microsoft VSEE // // Microsoft Confidential // Copyright 1995-1999 Microsoft Corporation. All Rights Reserved. // // @doc EXTERNAL // @module LECPlugin.idl - Interface definitions for support of the Analyzer Plugin | // // @owner AllenD //----------------------------------------------------------------------------- import "oaidl.idl"; import "ocidl.idl"; /*----------------------------------------------------------------------------- Name: ISystemDebugPluginControl @interface ISystemDebugPluginControl | Analyzer plugin control interface Implemented by the Analyzer LEC. Called by the plugin controller. @owner AllenD @base public | IUnknown -----------------------------------------------------------------------------*/ [uuid(6c736d3F-7E40-41e2-9877-8CA63B493464)] interface ISystemDebugPluginControl : IUnknown { // @meth HRESULT | LoadPlugin | Load the desired plugin HRESULT LoadPlugin ( [in] REFCLSID clsidPlugin, [in] IUnknown * punkPluginData, [out] DWORD * pdwPluginCookie ); // @meth HRESULT | UnloadPlugin | Release the active plugin HRESULT UnloadPlugin ( [in] DWORD dwPluginCookie ); }; /*----------------------------------------------------------------------------- Name: ISystemDebugPluginAttachment @interface ISystemDebugPluginAttachment | Analyzer plugin attachment interface Implemented by the Analyzer LEC. Called by the plugin. @owner AllenD @base public | IUnknown -----------------------------------------------------------------------------*/ [uuid(6c736d15-F7AC-4114-B8E6-50908F28AC5B)] interface ISystemDebugPluginAttachment : IUnknown { // @meth HRESULT | ActivateEventSource | Activates a specified event source HRESULT ActivateEventSource ( [in] DWORD dwPluginId, [in] REFGUID guidEventSourceId ); // @meth HRESULT | DeactivateEventSource | Deactivates the specified event source HRESULT DeactivateEventSource ( [in] DWORD dwPluginId, [in] REFGUID guidEventSourceId ); // @meth HRESULT | StartFiring | A request to start delivery of events to the plugin HRESULT StartFiring ( [in] DWORD dwPluginId ); // @meth HRESULT | StopFiring | A request to stop delivery of events to the plugin HRESULT StopFiring ( [in] DWORD dwPluginId ); // @meth HRESULT | SetBlockOnOverflow | A request to to set/reset the block on overflow flag HRESULT SetBlockOnOverflow ( [in] BOOL fBlock ); // @meth HRESULT | GetMachineInfo | Retrieves performance counter information from the local machine HRESULT GetMachineInfo ( [out] LARGE_INTEGER * pliTimebase, [out] LARGE_INTEGER * pliFrequency ); }; /*----------------------------------------------------------------------------- Name: ISystemDebugPlugin @interface ISystemDebugPlugin | Analyzer plugin interface Implemented by the plugin. @owner AllenD @base public | IUnknown -----------------------------------------------------------------------------*/ [uuid(6c736dDC-00F1-4c63-ABD8-638E1381B73B)] interface ISystemDebugPlugin : IUnknown { // @meth HRESULT | Startup | Instructs the plugin to start, providing context data HRESULT Startup ( [in] DWORD dwPluginId, [in] IUnknown * punkPluginData, [in] ISystemDebugPluginAttachment * pAttachPoint ); // @meth HRESULT | FireEvents | Delivers events to the plugin HRESULT FireEvents ( [in] REFGUID guidFiringComponent, [in] ULONG ulEventBufferSize, [in, size_is(ulEventBufferSize)] unsigned char rgEventBuffer[] ); // @meth HRESULT | Shutdown | Instructs the plugin to shutdown (about to be released) HRESULT Shutdown (); };