//+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992-1999. // // File: alertapi.h // // Contents: Alert system API. // // History: 11-Jan-94 MarkBl Created // //-------------------------------------------------------------------------- #if !defined( __ALERTAPI_H__ ) #define __ALERTAPI_H__ #if _MSC_VER > 1000 #pragma once #endif // // OLE headers don't define these. Use 'LP' vs 'P' to be consistent with OLE. // typedef UUID * LPUUID; typedef DISPID * LPDISPID; typedef DISPPARAMS * LPDISPPARAMS; // // Structure used with ReportAlert. // typedef struct _ALERTREPORTRECORD { short Category; short SubCategory; short Severity; long TitleMessageNumber; long cTitleMessageInserts; PWCHAR * TitleMessageInserts; PWCHAR TitleText; long DescrMessageNumber; long cDescrMessageInserts; PWCHAR * DescrMessageInserts; PWCHAR SourceDescription; LPUUID ComponentID; LPUUID ReportClassID; PWCHAR TakeActionDLL; long cBytesAlertData; PBYTE AlertData; long cAdditionalArguments; LPDISPID AdditionalArgumentNames; LPVARIANT AdditionalArguments; } ALERTREPORTRECORD, * PALERTREPORTRECORD; typedef const ALERTREPORTRECORD * PCALERTREPORTRECORD; // // Helper ALERTREPORTRECORD initialization macro. // #define INITIALIZE_ALERTREPORTRECORD( \ Record, \ Cat, \ Sev, \ TitleMsg, \ DescrMsg, \ CompID, \ SrcName) \ { \ Record.Category = Cat; \ Record.SubCategory = 0; \ Record.Severity = Sev; \ Record.TitleMessageNumber = TitleMsg; \ Record.cTitleMessageInserts = 0; \ Record.TitleMessageInserts = NULL; \ Record.TitleText = NULL; \ Record.DescrMessageNumber = DescrMsg; \ Record.cDescrMessageInserts = 0; \ Record.DescrMessageInserts = NULL; \ Record.SourceDescription = SrcName; \ Record.ComponentID = CompID; \ Record.ReportClassID = NULL; \ Record.TakeActionDLL = NULL; \ Record.cBytesAlertData = 0; \ Record.AlertData = NULL; \ Record.cAdditionalArguments = 0; \ Record.AdditionalArgumentNames = NULL; \ Record.AdditionalArguments = NULL; \ } typedef IAlertTarget * LPALERTTARGET; // // Public API // //+--------------------------------------------------------------------------- // // API: ReportAlert // // Description: Raise an alert to the local computer distributor object // and/or log the alert in the local system log. // // Arguments: [palrepRecord] -- ALERTREPORTRECORD alert data. // [fdwAction] -- ReportAlert action (defined below). // // Returns: S_OK // HRESULT error // //---------------------------------------------------------------------------- // // ReportAlert modes. // #define RA_REPORT 0x00000001 #define RA_LOG 0x00000002 #define RA_REPORT_AND_LOG 0x00000003 STDAPI ReportAlert( PCALERTREPORTRECORD palrepRecord, DWORD fdwAction); //+--------------------------------------------------------------------------- // // API: ReportAlertToTarget // // Description: Raise an alert to the alert target indicated. // // Arguments: [patTarget] -- Target instance (must be non-NULL). // [palrepRecord] -- ALERTREPORTRECORD alert data. // // Returns: S_OK // HRESULT error // //---------------------------------------------------------------------------- STDAPI ReportAlertToTarget( LPALERTTARGET patTarget, PCALERTREPORTRECORD palrepRecord); //+--------------------------------------------------------------------------- // // API: MarshalReport // // Description: Marshals the DISPPARAM alert report data into a buffer // suitable for report delivery via the IAlertTarget interface. // // Arguments: [pdparams] -- DISPPARAMS alert data. // [ppbReport] -- Return marshal buffer. // [pcbReportSize] -- Return marshal buffer size. // // Returns: S_OK // HRESULT error // //---------------------------------------------------------------------------- STDAPI MarshalReport( const LPDISPPARAMS pdparams, PBYTE * ppbReport, PULONG pcbReportSize); //+--------------------------------------------------------------------------- // // API: UnMarshalReport // // Description: The converse of MarshalReport. Un-marshals the buffer // (marshalled alert data) into a DISPPARAMS structure. // // Arguments: [cbReportSize] -- Marshalled report size. // [ppbReport] -- Marshalled report. // [pdparams] -- Returned DISPPARAMS alert data. // // Returns: S_OK // HRESULT error // //---------------------------------------------------------------------------- STDAPI UnMarshalReport( ULONG cbReportSize, const PBYTE pbReport, LPDISPPARAMS pdparams); // // Non-Public API [as yet] // STDAPI CreateAlertDistributorObject( const PWCHAR pwszAlertDistr); STDAPI Register( LPDISPATCH pdispAlertDistr, LPMONIKER pmkAlertTarget, SHORT sCategory, SHORT sSeverity, PLONG plRegistrationID); STDAPI RegisterEx( LPDISPATCH pdispAlertDistr, LPMONIKER pmkAlertTarget, SHORT cCount, SHORT asCategory[], SHORT asSeverity[], PLONG plRegistrationID); STDAPI AsLogAlertInSystemLog( ULONG cbReportSize, const PBYTE pbReport); #endif // __ALERTAPI_H__