//**************************************************************************** // // Copyright (c) 1992, Microsoft Corporation // // File: PORTABLE.H // // Definitions to simplify portability between WIN31 and WIN32 // //**************************************************************************** #ifndef _PORTABLE_H_ #define _PORTABLE_H_ #ifdef _NTWIN #ifndef WIN32 #define WIN32 #endif #endif #ifdef WIN32 #define GET_WM_COMMAND_ID(wp, lp) LOWORD(wp) #define GET_WM_COMMAND_CMD(wp, lp) HIWORD(wp) #define GET_WM_COMMAND_HWND(wp, lp) (HWND)(lp) #define GET_WINDOW_ID(hwnd) (UINT)GetWindowLong(hwnd, GWL_ID) #define GET_WINDOW_INSTANCE(hwnd) (HINSTANCE)GetWindowLong(hwnd, \ GWL_HINSTANCE) #define LONG2POINT(l, pt) ((pt).x=(SHORT)LOWORD(l), (pt).y=(SHORT)HIWORD(l)) #ifdef __cplusplus #define NOTIFYPARENT(hwnd,code) { \ UINT nID; \ nID = GET_WINDOW_ID(hwnd); \ (::SendMessage)(::GetParent(hwnd), \ WM_COMMAND, MAKEWPARAM(nID, code), \ (LPARAM)hwnd); \ } #define SENDCOMMAND(hwnd, cmd) { \ (::SendMessage)(hwnd, WM_COMMAND, \ MAKEWPARAM(cmd, 0), (LPARAM)0); \ } #define POSTCOMMAND(hwnd, cmd) { \ (::PostMessage)(hwnd, WM_COMMAND, \ MAKEWPARAM(cmd, 0), (LPARAM)0); \ } #else // !__cplusplus #define NOTIFYPARENT(hwnd,code) { \ UINT nID; \ nID = GET_WINDOW_ID(hwnd); \ SendMessage(GetParent(hwnd), WM_COMMAND, \ MAKEWPARAM(nID, code), \ (LPARAM)hwnd); \ } #define SENDCOMMAND(hwnd, cmd) { \ SendMessage(hwnd, WM_COMMAND, \ MAKEWPARAM(cmd, 0), (LPARAM)0); \ } #define POSTCOMMAND(hwnd, cmd) { \ PostMessage(hwnd, WM_COMMAND, \ MAKEWPARAM(cmd, 0), (LPARAM)0); \ } #endif // __cplusplus #else // !WIN32 // Some type definitions excluded from win31 sdk... // Should these ever be defined for win31, GET RID OF THESE! typedef float FLOAT; typedef char TCHAR; #define GET_WM_COMMAND_ID(wp, lp) LOWORD(wp) #define GET_WM_COMMAND_CMD(wp, lp) HIWORD(lp) #define GET_WM_COMMAND_HWND(wp, lp) (HWND)LOWORD(lp) #define GET_WINDOW_ID(hwnd) (UINT)GetWindowWord(hwnd, GWW_ID) #define GET_WINDOW_INSTANCE(hwnd) (HINSTANCE)GetWindowWord(hwnd, \ GWW_HINSTANCE) #define LONG2POINT(l, pt) ((pt).x = (int)LOWORD(l), (pt).y = (int)HIWORD(l)) #ifdef __cplusplus #define NOTIFYPARENT(hwnd,code) { \ UINT nID; \ nID = GET_WINDOW_ID(hwnd); \ (::SendMessage)(::GetParent(hwnd), \ WM_COMMAND, nID, \ MAKELPARAM(hwnd, code)); \ } #define SENDCOMMAND(hwnd, cmd) { \ (::SendMessage)(hwnd,WM_COMMAND,cmd,0); \ } #define POSTCOMMAND(hwnd, cmd) { \ (::PostMessage)(hwnd,WM_COMMAND,cmd,0); \ } #else // !__cplusplus #define NOTIFYPARENT(hwnd,code) { \ UINT nID; \ nID = GET_WINDOW_ID(hwnd); \ SendMessage(GetParent(hwnd), WM_COMMAND, \ nID, MAKELPARAM(hwnd, code)); \ } #define SENDCOMMAND(hwnd, cmd) { \ SendMessage(hwnd, WM_COMMAND, cmd, 0); \ } #define POSTCOMMAND(hwnd, cmd) { \ PostMessage(hwnd, WM_COMMAND, cmd, 0); \ } #endif // __cplusplus #endif // WIN32 #endif // _PORTABLE_H_