⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winmsg.odl

📁 The code for this article was written for version 1.0 of the Active Template Library (ATL). The cu
💻 ODL
📖 第 1 页 / 共 3 页
字号:

[
uuid(5467404C-3A82-101B-8181-00AA003743D3),
helpstring("Windows Messages"),
#ifdef WIN32
dllname("USER32.DLL")
#else
dllname("USER.EXE")
#endif
]
module WinMessage {

    [
    #ifdef WIN32
    usesgetlasterror,
    entry("SendMessageA"),
    #else
    entry("SendMessage"),
    #endif
    helpstring("Sends a Windows message (LPARAM as Long)")
    ]
    LRESULT WINAPI SendMessageAsLong([in] HWND hwnd, [in] UINT uMsg,
                                     [in] WPARAM wParam,
                                     [in] LONG lParam);

//@B SendMessages
    [
    #ifdef WIN32
    usesgetlasterror,
    entry("SendMessageA"),
    #else
    entry("SendMessage"),
    #endif
    helpstring("Sends a Windows message (LPARAM as String)")
    ]
    LRESULT WINAPI SendMessageAsStr([in] HWND hwnd, [in] UINT uMsg,
                                    [in] WPARAM wParam,
                                    [in, out] LPSTR lParam);

    [
    #ifdef WIN32
    usesgetlasterror,
    entry("SendMessageA"),
    #else
    entry("SendMessage"),
    #endif
    helpstring("Sends a Windows message (LPARAM as Long pointer)")
    ]
    LRESULT WINAPI SendMessageAsLp([in] HWND hwnd, [in] UINT uMsg,
                                   [in] WPARAM wParam,
                                   [in] LONG lParam);

    [
    #ifdef WIN32
    usesgetlasterror,
    entry("SendMessageA"),
    #else
    entry("SendMessage"),
    #endif
    helpstring("Sends a Windows message (LPARAM as ByRef Long or Long array)")
    ]
    LRESULT WINAPI SendMessageForLong([in] HWND hwnd, [in] UINT uMsg,
                                      [in] WPARAM wParam,
                                      [in, out] LONG * lParam);
//@E SendMessages

    [
    #ifdef WIN32
    usesgetlasterror,
    entry("SendMessageA"),
    helpstring("Sends a Windows message (LPARAM as ByRef SysInt (Long) or array of SysInts)")
    #else
    entry("SendMessage"),
    helpstring("Sends a Windows message (LPARAM as ByRef SysInt (Integer) or array of SysInts)")
    #endif
    ]
    LRESULT WINAPI SendMessageForInt([in] HWND hwnd, [in] UINT uMsg,
                                     [in] WPARAM wParam,
                                     [in, out] UINT * lParam);

    [
    #ifdef WIN32
    usesgetlasterror,
    entry("SendMessageA"),
    #else
    entry("SendMessage"),
    #endif
    helpstring("Sends a Windows message (LPARAM as ByRef Byte or array of Bytes)")
    ]
    LRESULT WINAPI SendMessageForByte([in] HWND hwnd,
                                      [in] UINT uMsg,
                                      [in] WPARAM wParam,
                                      [in, out] BYTE * lParam);


    [
    #ifdef WIN32
    usesgetlasterror,
    entry("PostMessageA"),
    #else
    entry("PostMessage"),
    #endif
    helpstring("Posts message to Windows queue (LPARAM as Long)")
    ]
    BOOL    WINAPI PostMessageAsLong([in] HWND hwnd, [in] UINT uMsg,
                                     [in] WPARAM wParam,
                                     [in] LONG lParam);

    [
    #ifdef WIN32
    usesgetlasterror,
    entry("PostMessageA"),
    #else
    entry("PostMessage"),
    #endif
    helpstring("Posts message to Windows queue (LPARAM as String)")
    ]
    BOOL    WINAPI PostMessageAsStr([in] HWND hwnd, [in] UINT uMsg,
                                    [in] WPARAM wParam,
                                    [in, out] LPSTR lParam);

    [
    #ifdef WIN32
    usesgetlasterror,
    entry("PostMessageA"),
    #else
    entry("PostMessage"),
    #endif
    helpstring("Posts message to Windows queue (LPARAM as Long pointer)")
    ]
    BOOL    WINAPI PostMessageAsLp([in] HWND hwnd, [in] UINT uMsg,
                                   [in] WPARAM wParam,
                                   [in] LONG lParam);

    [
    #ifdef WIN32
    usesgetlasterror,
    entry("PostMessageA"),
    #else
    entry("PostMessage"),
    #endif
    helpstring("Posts message to Windows queue (LPARAM as ByRef Long or Long array)")
    ]
    BOOL    WINAPI PostMessageForLong([in] HWND hwnd, [in] UINT uMsg,
                                      [in] WPARAM wParam,
                                      [in, out] LONG * lParam);

    [
    #ifdef WIN32
    usesgetlasterror,
    entry("PostMessageA"),
    helpstring("Posts message to Windows queue (LPARAM as ByRef SysInt (Long) or array of SysInts)")
    #else
    entry("PostMessage"),
    helpstring("Posts message to Windows queue (LPARAM as ByRef SysInt (Integer) or array of SysInts)")
    #endif
    ]
    BOOL    WINAPI PostMessageForInt([in] HWND hwnd, [in] UINT uMsg,
                                     [in] WPARAM wParam,
                                     [in, out] UINT * lParam);

    [
    #ifdef WIN32
    usesgetlasterror,
    entry("PostMessageA"),
    #else
    entry("PostMessage"),
    #endif
    helpstring("Posts message to Windows queue (LPARAM as ByRef Byte or array of Bytes)")
    ]
    BOOL    WINAPI PostMessageForByte([in] HWND hwnd,
                                      [in] UINT uMsg,
                                      [in] WPARAM wParam,
                                      [in, out] BYTE * lParam);

    /*
    BOOL    WINAPI PostAppMessage(HTASK, UINT, WPARAM, LPARAM);

    void    WINAPI PostQuitMessage(int);
    */

    [
    usesgetlasterror,
    entry("RegisterWindowMessageA"),
    helpstring("Defines window message guaranteed to be unique"),
    ]
    UINT WINAPI RegisterWindowMessage([in] LPSTR lpsz);

    /*
    // Queued message structure
    typedef struct tagMSG
    {
        HWND    hwnd;
        UINT        message;
        WPARAM  wParam;
        LPARAM  lParam;
        DWORD       time;
        POINT   pt;
    } MSG;
    typedef MSG* PMSG;
    typedef MSG NEAR* NPMSG;
    typedef MSG FAR* LPMSG;

    BOOL    WINAPI GetMessage(MSG FAR*, [in] HWND hwnd, UINT, UINT);
    BOOL    WINAPI PeekMessage(MSG FAR*, [in] HWND hwnd, UINT, UINT, UINT);

    void    WINAPI WaitMessage(void);

    DWORD   WINAPI GetMessagePos(void);
    LONG    WINAPI GetMessageTime(void);
    LPARAM  WINAPI GetMessageExtraInfo(void);

    BOOL    WINAPI TranslateMessage(const MSG FAR*);
    LONG    WINAPI DispatchMessage(const MSG FAR*);

    BOOL    WINAPI SetMessageQueue(int);

    BOOL    WINAPI GetInputState(void);

    DWORD   WINAPI GetQueueStatus(UINT flags);
    */

    /*
    void    WINAPI ReplyMessage(LRESULT);
    BOOL    WINAPI InSendMessage(void);

    // Special HWND value for use with PostMessage() and SendMessage()

    BOOL WINAPI CallMsgFilter(MSG FAR*, int);
    */

    /*
    // PeekMessage() options
    const int PM_NOREMOVE     = 0x0000;
    const int PM_REMOVE       = 0x0001;
    const int PM_NOYIELD      = 0x0002;

    // GetQueueStatus flags
    const int QS_KEY          = 0x0001;
    const int QS_MOUSEMOVE    = 0x0002;
    const int QS_MOUSEBUTTON  = 0x0004;
    const int QS_MOUSE        = 0x0006; // (QS_MOUSEMOVE | QS_MOUSEBUTTON)
    const int QS_POSTMESSAGE  = 0x0008;
    const int QS_TIMER        = 0x0010;
    const int QS_PAINT        = 0x0020;
    const int QS_SENDMESSAGE  = 0x0040;

    const int QS_ALLINPUT  = 0x007f;
    */

    const int HWND_BROADCAST  =-1;

    const int WM_NULL          = 0x0000;

    const int WM_WININICHANGE  =       0x001A;

    const int WM_SYSCOLORCHANGE =   0x0015;

    // Palette window messages
    const int WM_QUERYNEWPALETE = 0x030F;
    const int WM_PALETTEISCHANGING = 0x0310;
    const int WM_PALETTECHANGED    = 0x0311;

    // Spooler status notification message
    const int WM_SPOOLERSTATUS =       0x002A;

    const int WM_DEVMODECHANGE =    0x001B;
    const int WM_TIMECHANGE    = 0x001E;

    const int WM_SHOWWINDOW    = 0x0018;

    // WM_SHOWWINDOW wParam codes
    const int SW_PARENTCLOSING =    1;
    const int SW_OTHERMAXIMIZED=    2;
    const int SW_PARENTOPENING =    3;
    const int SW_OTHERRESTORED =    4;

    /* Obsolete constant names
    const int SW_OTHERZOOM     =    SW_OTHERMAXIMIZED;
    const int SW_OTHERUNZOOM   =       SW_OTHERRESTORED;
    */

    // Dialog messages
    const int DM_GETDEFID      = WM_USER+0;
    const int DM_SETDEFID      = WM_USER+1;

    // Returned in HIWORD() of DM_GETDEFID result if msg is supported
    const int DC_HASDEFID      = 0x534B;

    // Static Control Mesages
    #ifdef WIN32
    const int STM_SETICON      = 0x0170;
    const int STM_GETICON      = 0x0171;
    #else
    const int STM_SETICON      = WM_USER+0;
    const int STM_GETICON      = WM_USER+1;
    #endif

    // PenWindows specific messages
    const int WM_PENWINFIRST   =       0x0380;
    const int WM_PENWINLAST    = 0x038F;

    // Coalescing messages
    const int WM_COALESCE_FIRST =   0x0390;
    const int WM_COALESCE_LAST  =   0x039F;

    const int WM_POWER     = 0x0048;

    // wParam for WM_POWER window message and DRV_POWER driver notification
    const int PWR_OK             =    1;
    const int PWR_FAIL           =  -1;
    const int PWR_SUSPENDREQUEST =  1;
    const int PWR_SUSPENDRESUME  =  2;
    const int PWR_CRITICALRESUME = 3;

    // ****** Application termination *******

    const int WM_QUERYENDSESSION  = 0x0011;
    const int WM_ENDSESSION       = 0x0016;

    const int WM_QUIT             = 0x0012;

    const int WM_SYSTEMERROR   =           0x0017;

    const int WM_CREATE        = 0x0001;
    const int WM_NCCREATE      = 0x0081;

    /* Omit WM_CREATE/WM_NCCREATE lParam struct
    typedef struct tagCREATESTRUCT
    {
        void FAR* lpCreateParams;
        HINSTANCE hInstance;
        HMENU     hMenu;
        HWND      hwndParent;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -