//This is the basic data you'll need to fill and pass to the service function. typedef struct { HANDLE lchContact; //Handle to the contact, can be NULL (main contact). HICON lchIcon; //Handle to a icon to be shown. Cannot be NULL. union{ char lpzContactName[MAX_CONTACTNAME]; //This is the contact name or the first line in the plugin. Cannot be NULL. char lptzContactName[MAX_CONTACTNAME];//tchar version }; union{ char lpzText[MAX_SECONDLINE]; //This is the second line text. Users can choose to hide it. Cannot be NULL. char lptzText[MAX_SECONDLINE]; //tchar version }; COLORREF colorBack; //COLORREF to be used for the background. Can be NULL, default will be used. COLORREF colorText; //COLORREF to be used for the text. Can be NULL, default will be used. WNDPROC PluginWindowProc; //Read below. Can be NULL; default will be used. void * PluginData; //Read below. Can be NULL. } POPUPDATA, * LPPOPUPDATA; typedef struct { HANDLE lchContact; HICON lchIcon; union{ char lpzContactName[MAX_CONTACTNAME]; char lptzContactName[MAX_CONTACTNAME]; //tchar version }; union{ char lpzText[MAX_SECONDLINE]; char lptzText[MAX_SECONDLINE]; //tchar version }; COLORREF colorBack; //Set background to POPUP_USE_SKINNED_BG to turn on skinning COLORREF colorText; WNDPROC PluginWindowProc; void * PluginData; int iSeconds; //Custom delay time in seconds. -1 means "forever", 0 means "default time". LPCTSTR lpzClass; //PopUp class. Used with skinning. See PopUp/AddClass for details COLORREF skinBack; //Background color for colorizable skins char cZero[16 - sizeof(LPCTSTR) - sizeof(COLORREF)]; //some unused bytes which may come useful in the future. } POPUPDATAEX, *LPPOPUPDATAEX; // Unicode Popup Info //m_popupw.h typedef struct { HANDLE lchContact; HICON lchIcon; union{ WCHAR lpwzContactName[MAX_CONTACTNAME]; WCHAR lptzContactName[MAX_CONTACTNAME]; //tchar version }; union{ WCHAR lpwzText[MAX_SECONDLINE]; WCHAR lptzText[MAX_SECONDLINE]; //tchar version }; COLORREF colorBack; COLORREF colorText; WNDPROC PluginWindowProc; void * PluginData; int iSeconds; //Custom delay time in seconds. -1 means "forever", 0 means "default time". char cZero[16]; //some unused bytes which may come useful in the future. } POPUPDATAW, *LPPOPUPDATAW; #ifdef _UNICODE #ifndef POPUPDATAT # define POPUPDATAT POPUPDATAW #endif //POPUPDATAT #ifndef PUAddPopUpT # define PUAddPopUpT PUAddPopUpW #endif //PUAddPopUpT #else #ifndef POPUPDATAT # define POPUPDATAT POPUPDATAEX #endif //POPUPDATAT #ifndef PUAddPopUpT # define PUAddPopUpT PUAddPopUpEx #endif //PUAddPopUpT #endif //_UNICODE