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

#ifndef WindowMsgFH
#define WindowMsgFH
//---------------------------------------------------------------------------
#include <Types.hpp>
#include <Windows.hpp>

/*
******************************************************************************
* Define constant(윈도우 간의 메시지 전달을 위해 사용하는 상수값 정의)
******************************************************************************
*/
#define POST_MSG(x,y,z,p)       ::PostMessage(x, y,       (WPARAM)z, (LPARAM)p)
#define USER_MSG(x,y)           ::PostMessage(x, WM_USER, (WPARAM)y, (LPARAM)0)

/*
*  윈도우 메시지
*/
#define WM_MAINFORM             (WM_USER + 0xF0)    // Main Form으로 부터의 메시지
#define WM_PLUGINFORM           (WM_USER + 0xF1)    // PlugIn Form으로 부터의 메시지
#define WM_SUBFORM_CLOSE        (WM_USER + 0xF2)    // Sub Form Close
#define WM_THREAD               (WM_USER + 0xF3)    /* 스레드 연계 메시지 */
#define WM_PARAM_DATABASE       (WM_USER + 0xF4)    /* 데이터베이스 메시지 */
#define WM_DATABASE_REFRESH     (WM_USER + 0xF5)    // 데이터베이스 변경

#define WM_VMS_SELECT           (WM_USER + 0xA0)
#define WM_VMS_SELECT_DBLCLICK  (WM_USER + 0xB0)
#define WM_VMS_STATE_REFRESH    (WM_USER + 0xA1)
#define WM_VMS_FORM_REFRESH     (WM_USER + 0xA2)
#define WM_VMS_INCIDENT_REFRESH (WM_USER + 0xA3)

// WPARAM unique message
#define WP_PING                 0xA0    // 스레드 핑테스트
#define WP_DB_SELECT_START      0xB0    // db select start
#define WP_DB_SELECT_OK         0xB1    // db select end(ok)
#define WP_DB_SELECT_ERROR      0xB2    // db select error
#define WP_DB_SELECT_CANCEL     0xB3    // db select cancel
#define WP_PARAM_TRAFFIC        0xC0    // 데이터베이스 메시지



// WPARAM Message
#define WP_MSG_01               0xC1    //
#define WP_MSG_02               0xC2    //
#define WP_MSG_03               0xC3    //
#define WP_MSG_04               0xC4    //
#define WP_MSG_05               0xC5    //
#define WP_MSG_06               0xC6    //
#define WP_MSG_07               0xC7    //
#define WP_MSG_08               0xC8    //
#define WP_MSG_09               0xC9    //
#define WP_MSG_10               0xCA    //
#define WP_MSG_11               0xCB    //
#define WP_MSG_12               0xCC    //
#define WP_MSG_13               0xCD    //
#define WP_MSG_14               0xCE    //
#define WP_MSG_15               0xCF    //
#define WP_MSG_16               0xD0    //
#define WP_MSG_17               0xD1    //
#define WP_MSG_18               0xD2    //
#define WP_MSG_19               0xD3    //
#define WP_MSG_20               0xD4    //

// LPARAM Message
#define LP_MSG_TRAFFIC          0xA0    //
#define LP_MSG_DATABASE_STTS    0xA1    //
#define LP_MSG_VMS_DSPLMSG      0xA2    //
#define LP_MSG_03               0xA3    //
#define LP_MSG_04               0xA4    //
#define LP_MSG_05               0xA5    //
#define LP_MSG_06               0xA6    //
#define LP_MSG_07               0xA7    //
#define LP_MSG_08               0xA8    //
#define LP_MSG_09               0xA9    //
#define LP_MSG_10               0xAA    //
#define LP_MSG_FACILITY_STTS    0xAB    //
#define LP_MSG_PROCESS_STTS     0xAC    //
#define LP_MSG_INCIDENT         0xAD    //
#define LP_MSG_14               0xAE    //
#define LP_MSG_15               0xAF    //
#define LP_MSG_16               0xB0    //
#define LP_MSG_WEATHER          0xB1    //
#define LP_MSG_18               0xB2    //
#define LP_MSG_19               0xB3    //
#define LP_MSG_20               0xB4    //
#define LP_MSG_21               0xB5    //


#endif

