zoukankan      html  css  js  c++  java
  • 写windows事件的C++类

    //---------------------------------------------------------------------------

    #pragma hdrstop

    #include <tchar.h>
    #include <windows.h>

    //---------------------------------------------------------------------------

    enum event_type
    {
        success = 0x0000,
        error   = 0x0001,
        warning = 0x0002,
        information = 0x0004,
        audit_success = 0x0008,
        audit_failure = 0x0010
    };

    class event_logger
    {
    private:
        HANDLE h;
    public:
        event_logger(LPTSTR pszSrcName)
        {
            h = RegisterEventSource(NULL,  // use local computer
                    pszSrcName);           // event source name
        }

        ~event_logger()
        {
            DeregisterEventSource(h);
        }

        void log(event_type eventtype, LPCTSTR szMsg,
            DWORD dwEventID = 4, WORD wCategory = 0)
        {
            if (h == NULL)
            {
                return;
            }

            const char* strings[] = {szMsg};

            WORD type = 4;

            switch (eventtype)
            {
                case success:
                    type = 0;
                case error:
                    type = 1;
                case warning:
                    type = 2;
                case information:
                    type = 4;
                case audit_success:
                    type = 8;
                case audit_failure:
                    type = 10;
            }

            // Report the event.

            if (!ReportEvent(h,           // event log handle
                    type,  // event type
                    wCategory,            // event category
                    dwEventID,            // event identifier
                    NULL,                 // no user security identifier
                    1,             // number of substitution strings
                    0,                    // no data
                    strings,                // pointer to strings
                    NULL))                // no data
            {
                //Could not report the event.
            }
        }
    };

    #pragma argsused
    int _tmain(int argc, _TCHAR* argv[])
    {
        //const char* strings[] = {"hwllo", "asdf", "eeee"};
        //MyReportEvent("eeee", MSG_ERR_EXIST, 0, 3, strings);
        event_logger log("电子");
        log.log(information, "大家好啊!");
        log.log(warning, "好啊!");
        return 0;
    }
    //---------------------------------------------------------------------------
  • 相关阅读:
    day 16
    day 15
    day 14
    day 13
    Unity Shader UnityCG.cginc
    Unity Shader 包含内置文件
    Unity Shader 如何使用属性
    Unity Shader 顶点/片元着色器的基本结构
    Unity Shader 的基础结构
    git文件名大小敏感
  • 原文地址:https://www.cnblogs.com/yuanxiaoping_21cn_com/p/1551318.html
Copyright © 2011-2022 走看看