//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.htypedef 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