Do not callback to the parent for lParam when in LVS_OWNERDATA.
Docs update.
This commit is contained in:
parent
eca6182749
commit
8f15b6e6b3
@ -60,6 +60,11 @@
|
|||||||
* this would allow to frame items (iterator_frameditems),
|
* this would allow to frame items (iterator_frameditems),
|
||||||
* and find nearest item (LVFI_NEARESTXY) a lot more efficiently
|
* and find nearest item (LVFI_NEARESTXY) a lot more efficiently
|
||||||
*
|
*
|
||||||
|
* Flags
|
||||||
|
* -- LVIF_COLUMNS
|
||||||
|
* -- LVIF_GROUPID
|
||||||
|
* -- LVIF_NORECOMPUTE
|
||||||
|
*
|
||||||
* States
|
* States
|
||||||
* -- LVIS_ACTIVATING (not currently supported by comctl32.dll version 6.0)
|
* -- LVIS_ACTIVATING (not currently supported by comctl32.dll version 6.0)
|
||||||
* -- LVIS_CUT
|
* -- LVIS_CUT
|
||||||
@ -4759,12 +4764,12 @@ static BOOL LISTVIEW_GetItemT(LISTVIEW_INFO *infoPtr, LPLVITEMW lpLVItem, BOOL i
|
|||||||
{
|
{
|
||||||
dispInfo.item.state = 0;
|
dispInfo.item.state = 0;
|
||||||
|
|
||||||
/* if we need to callback, do it now */
|
/* apprently, we should not callback for lParam in LVS_OWNERDATA */
|
||||||
if ((lpLVItem->mask & ~LVIF_STATE) || infoPtr->uCallbackMask)
|
if ((lpLVItem->mask & ~(LVIF_STATE | LVIF_PARAM)) || infoPtr->uCallbackMask)
|
||||||
{
|
{
|
||||||
/* NOTE: copy only fields which we _know_ are initialized, some apps
|
/* NOTE: copy only fields which we _know_ are initialized, some apps
|
||||||
* depend on the uninitialized fields being 0 */
|
* depend on the uninitialized fields being 0 */
|
||||||
dispInfo.item.mask = lpLVItem->mask;
|
dispInfo.item.mask = lpLVItem->mask & ~LVIF_PARAM;
|
||||||
dispInfo.item.iItem = lpLVItem->iItem;
|
dispInfo.item.iItem = lpLVItem->iItem;
|
||||||
dispInfo.item.iSubItem = lpLVItem->iSubItem;
|
dispInfo.item.iSubItem = lpLVItem->iSubItem;
|
||||||
if (lpLVItem->mask & LVIF_TEXT)
|
if (lpLVItem->mask & LVIF_TEXT)
|
||||||
@ -4780,6 +4785,9 @@ static BOOL LISTVIEW_GetItemT(LISTVIEW_INFO *infoPtr, LPLVITEMW lpLVItem, BOOL i
|
|||||||
TRACE(" getdispinfo(1):lpLVItem=%s\n", debuglvitem_t(lpLVItem, isW));
|
TRACE(" getdispinfo(1):lpLVItem=%s\n", debuglvitem_t(lpLVItem, isW));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* make sure lParam is zeroed out */
|
||||||
|
if (lpLVItem->mask & LVIF_PARAM) lpLVItem->lParam = 0;
|
||||||
|
|
||||||
/* we store only a little state, so if we're not asked, we're done */
|
/* we store only a little state, so if we're not asked, we're done */
|
||||||
if (!(lpLVItem->mask & LVIF_STATE) || lpLVItem->iSubItem) return TRUE;
|
if (!(lpLVItem->mask & LVIF_STATE) || lpLVItem->iSubItem) return TRUE;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user