Hi, > > +static HWND LISTVIEW_SetToolTips( LISTVIEW_INFO *, HWND); > > I don't think you need these here. Dimitry, should i inline LISTVIEW_SetToolTips also ? In this patch, LISTVIEW_SetToolTips is not inlined. > > + /* init ToolTip */ > > + infoPtr->hwndToolTip = NULL; > > Is this needed? Isn't the info structure initialized to 0? You are right , info structure is initialized in the COMCTL32_Alloc Changelog : Listview: Implemented Get/SetToolTips functions Index: dlls/comctl32/listview.c =================================================================== RCS file: /home/wine/wine/dlls/comctl32/listview.c,v retrieving revision 1.348 diff -u -r1.348 listview.c --- dlls/comctl32/listview.c 2 May 2003 20:14:33 -0000 1.348 +++ dlls/comctl32/listview.c 10 May 2003 07:41:59 -0000 @@ -270,6 +270,7 @@ WNDPROC EditWndProc; INT nEditLabelItem; DWORD dwHoverTime; + HWND hwndToolTip; DWORD lastKeyPressTimestamp; WPARAM charCode; @@ -391,6 +392,8 @@ static INT LISTVIEW_GetTopIndex(LISTVIEW_INFO *); static BOOL LISTVIEW_EnsureVisible(LISTVIEW_INFO *, INT, BOOL); static HWND CreateEditLabelT(LISTVIEW_INFO *, LPCWSTR, DWORD, INT, INT, INT, INT, BOOL); +static HWND LISTVIEW_SetToolTips( LISTVIEW_INFO *, HWND); + /******** Text handling functions *************************************/ @@ -6982,7 +6992,24 @@ return TRUE; } -/* LISTVIEW_SetToolTips */ +/*** + * DESCRIPTION: + * Determines which listview item is located at the specified position. + * + * PARAMETER(S): + * [I] infoPtr : valid pointer to the listview structure + * [I] hwndNewToolTip : handle to new ToolTip + * + * RETURN: + * old tool tip + */ +static HWND LISTVIEW_SetToolTips( LISTVIEW_INFO *infoPtr, HWND hwndNewToolTip) +{ + HWND hwndOldToolTip = infoPtr->hwndToolTip; + infoPtr->hwndToolTip = hwndNewToolTip; + return hwndOldToolTip; +} + /* LISTVIEW_SetUnicodeFormat */ /* LISTVIEW_SetWorkAreas */ @@ -7214,7 +7241,7 @@ GetWindowLongW(infoPtr->hwndHeader, GWL_STYLE) | HDS_HIDDEN); } } - + return 0; fail: @@ -8623,8 +8649,7 @@ /* case LVM_GETTILEVIEWINFO: */ case LVM_GETTOOLTIPS: - FIXME("LVM_GETTOOLTIPS: unimplemented\n"); - return FALSE; + return (LRESULT)infoPtr->hwndToolTip; case LVM_GETTOPINDEX: return LISTVIEW_GetTopIndex(infoPtr); @@ -8781,7 +8806,8 @@ /* case LVM_SETTILEWIDTH: */ - /* case LVM_SETTOOLTIPS: */ + case LVM_SETTOOLTIPS: + return (LRESULT)LISTVIEW_SetToolTips(infoPtr, (HWND)lParam); /* case LVM_SETUNICODEFORMAT: */