TListView selecting items problem

  I'm using list with report view style, and single selection.

    I need sometimes block changing selection.
    Also when I click below items, selection disappear -  in this case
last element should be selected, or stayed on current item.

    There are two notification messages:
LVN_ITEMChanging (OnChanging), LVN_ITEMCHANGED (OnChanged)
which I could use. But I've found that  LVN_ITEMChanging is fired 3/4
times (3 times when using keyboard ,  and 4 times using mouse to change
selection - but I
must display messagebox with question inside - how detect first
time????).
    Does anybody have good procedure???
        Tomasz