After exhausting anything like reference material, this is the most successful so far.
; ........
sub ecx, 1
sub mn, ecx
mov eax, mn
mov cr.cpMin, eax
mov cr.cpMax, eax
add cr.cpMax, edx
; |||||||||||||||||||||||||||||||||||||||||||
; zero the selection to the end cpMax value
; |||||||||||||||||||||||||||||||||||||||||||
add eax, edx
mov cn.cpMin, eax
mov cn.cpMax, eax
invoke SendMessage,edit,EM_EXSETSEL,0,ADDR cn
; |||||||||||||||||||||||||||||||||||||||||||
invoke SendMessage,edit,EM_HIDESELECTION,0,0
invoke SendMessage,edit,EM_EXSETSEL,0,ADDR cr ; set to correct selection
; ........