From 48540940b6c28bb4378abfeb500ec45a625b37b6 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Tue, 15 May 2012 10:38:20 +0000 Subject: initial commit git-svn-id: http://svn.miranda-ng.org/main/trunk@2 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- include/m_message.h | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 include/m_message.h (limited to 'include/m_message.h') diff --git a/include/m_message.h b/include/m_message.h new file mode 100644 index 0000000000..4b6a7933c0 --- /dev/null +++ b/include/m_message.h @@ -0,0 +1,173 @@ +/* + +Miranda IM: the free IM client for Microsoft* Windows* + +Copyright 2000-2008 Miranda ICQ/IM project, +all portions of this codebase are copyrighted to the people +listed in contributors.txt. + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#ifndef M_MESSAGE_H__ +#define M_MESSAGE_H__ 1 + +//brings up the send message dialog for a contact +//wParam=(WPARAM)(HANDLE)hContact +//lParam=(LPARAM)(char*)szText +//returns 0 on success or nonzero on failure +//returns immediately, just after the dialog is shown +//szText is the text to put in the edit box of the window (but not send) +//szText=NULL will not use any text +//szText!=NULL is only supported on v0.1.2.0+ +#define MS_MSG_SENDMESSAGE "SRMsg/SendCommand" +#define MS_MSG_SENDMESSAGEW "SRMsg/SendCommandW" + +#ifdef _UNICODE +#define MS_MSG_SENDMESSAGET MS_MSG_SENDMESSAGEW +#else +#define MS_MSG_SENDMESSAGET MS_MSG_SENDMESSAGE +#endif + +#define ME_MSG_WINDOWEVENT "MessageAPI/WindowEvent" +//wparam=0 +//lparam=(WPARAM)(MessageWindowEventData*)hWindowEvent; +//Event types +#define MSG_WINDOW_EVT_OPENING 1 //window is about to be opened +#define MSG_WINDOW_EVT_OPEN 2 //window has been opened +#define MSG_WINDOW_EVT_CLOSING 3 //window is about to be closed +#define MSG_WINDOW_EVT_CLOSE 4 //window has been closed +#define MSG_WINDOW_EVT_CUSTOM 5 //custom event for message plugins to use (custom uFlags may be used) + +#define MSG_WINDOW_UFLAG_MSG_FROM 0x00000001 +#define MSG_WINDOW_UFLAG_MSG_TO 0x00000002 +#define MSG_WINDOW_UFLAG_MSG_BOTH 0x00000004 + +typedef struct { + int cbSize; + HANDLE hContact; + HWND hwndWindow; // top level window for the contact + const char* szModule; // used to get plugin type (which means you could use local if needed) + unsigned int uType; // see event types above + unsigned int uFlags; // used to indicate message direction for all event types except custom + void *local; // used to store pointer to custom data + HWND hwndInput; // input area window for the contact (or NULL if there is none) + HWND hwndLog; // log area window for the contact (or NULL if there is none) +} MessageWindowEventData; + +#define MS_MSG_GETWINDOWAPI "MessageAPI/WindowAPI" +//wparam=0 +//lparam=0 +//Returns a dword with the current message api version +//Current version is 0,0,0,4 + +#define MS_MSG_GETWINDOWCLASS "MessageAPI/WindowClass" +//wparam=(char*)szBuf +//lparam=(int)cbSize size of buffer +//Sets the window class name in wParam (ex. "SRMM" for srmm.dll) + +typedef struct { + int cbSize; + HANDLE hContact; + int uFlags; // see uflags above +} MessageWindowInputData; + +#define MSG_WINDOW_STATE_EXISTS 0x00000001 // Window exists should always be true if hwndWindow exists +#define MSG_WINDOW_STATE_VISIBLE 0x00000002 +#define MSG_WINDOW_STATE_FOCUS 0x00000004 +#define MSG_WINDOW_STATE_ICONIC 0x00000008 + +typedef struct { + int cbSize; + HANDLE hContact; + int uFlags; // should be same as input data unless 0, then it will be the actual type + HWND hwndWindow; //top level window for the contact or NULL if no window exists + int uState; // see window states + void *local; // used to store pointer to custom data +} MessageWindowData; + +#define MS_MSG_GETWINDOWDATA "MessageAPI/GetWindowData" +//wparam=(MessageWindowInputData*) +//lparam=(MessageWindowData*) +//returns 0 on success and returns non-zero (1) on error or if no window data exists for that hcontact + + +#define ME_MSG_WINDOWPOPUP "MessageAPI/WindowPopupRequested" +// wParam = 0 +// lParam = (MessageWindowPopupData *)&MessageWindowPopupData; +// Fired to allow plugins to add items to the msg window popup menu +// Always fired twice: once with MSG_WINDOWPOPUP_SHOWING and once with MSG_WINDOWPOPUP_SELECTED. +// This is done to allow cleaning of resources. +#define MSG_WINDOWPOPUP_SHOWING 1 +#define MSG_WINDOWPOPUP_SELECTED 2 + +#define MSG_WINDOWPOPUP_INPUT 1 +#define MSG_WINDOWPOPUP_LOG 2 + +typedef struct { + int cbSize; + unsigned int uType; // see popup types above + unsigned int uFlags; // used to indicate in which window the popup was requested + HANDLE hContact; + HWND hwnd; // window where the popup was requested + HMENU hMenu; // The handle to the menu + POINT pt; // The point, in screen coords + int selection; // The menu control id or 0 if no one was selected +} MessageWindowPopupData; + +// status icons - HICONs will be automatically destroyed when removed or when miranda exits + +#define MBF_DISABLED 0x01 +#define MBF_HIDDEN 0x02 + +typedef struct { + int cbSize; + char *szModule; // used in combo with the dwId below to create a unique identifier + DWORD dwId; + HICON hIcon, hIconDisabled; // hIconDisabled is optional - if null, will use hIcon in the disabled state + int flags; // bitwize OR of MBF_* flags above + char *szTooltip; +} StatusIconData; + +#define MBCF_RIGHTBUTTON 0x01 // if this flag is specified, the click was a right button - otherwize it was a left click + +typedef struct { + int cbSize; + POINT clickLocation; // click location, in screen coordinates + char *szModule; + DWORD dwId; + int flags; // bitwize OR of MBCF_* flags above +} StatusIconClickData; + +#define MS_MSG_ADDICON "MessageAPI/AddIcon" +// lParam = (StatusIconData *)&StatusIconData + +#define MS_MSG_REMOVEICON "MessageAPI/RemoveIcon" +// lParam = (StatusIconData *)&StatusIconData +// only szModule and szId are used + +#define MS_MSG_MODIFYICON "MessageAPI/ModifyIcon" +// wParam = (HANDLE)hContact +// lParam = (StatusIconData *)&StatusIconData +// if hContact is null, icon is modified for all contacts +// otherwise, only the flags field is valid +// if either hIcon, hIconDisabled or szTooltip is null, they will not be modified + +#define ME_MSG_ICONPRESSED "MessageAPI/IconPressed" +// wParam = (HANDLE)hContact; +// lParam = (StatusIconClickData *)&StatusIconClickData; +// catch to show a popup menu, etc. + +#endif // M_MESSAGE_H__ -- cgit v1.2.3