i got it to work ok
i made a "MakeIt.bat" file to build it...
\masm32\bin\rc /v IczEdit.rc
if exist rsrc.res del rsrc.res
if exist IczEdit.res ren IczEdit.res rsrc.res
if exist rsrc.obj del rsrc.obj
\masm32\bin\cvtres /machine:ix86 rsrc.res
if exist rsrc.res del rsrc.res
if exist IczEdit.obj del IczEdit.obj
\masm32\bin\ml /c /coff IczEdit.asm
\masm32\bin\Link /STACK:2000000,2000000 /SUBSYSTEM:WINDOWS /OPT:NOREF IczEdit.obj rsrc.obj
if exist rsrc.obj del rsrc.obj
if exist IczEdit.obj del IczEdit.obj
it seems to be sublcassing the control just fine
the one problem i did see was....
.elseif uMsg==WM_CLOSE
invoke SetWindowLong,hWnd,GWL_WNDPROC,OldWndProc
.else
invoke CallWindowProc,OldWndProc,hWnd,uMsg,wParam,lParam
ret
.endif
NewRichEditProc endp
WM_CLOSE is received - it "un-subclasses" itself - then it goes out to lala land - lol
no RET or anything
probably ok to return 0 and RET, but i did it this way.....
.elseif uMsg==WM_CLOSE
invoke SetWindowLong,hWnd,GWL_WNDPROC,OldWndProc
invoke CallWindowProc,OldWndProc,hWnd,uMsg,wParam,lParam
ret
.else
invoke CallWindowProc,OldWndProc,hWnd,uMsg,wParam,lParam
ret
.endif
NewRichEditProc endp
as far as i know, that method of sub-classing works fine under vista
so - i think it's something else (in the WM_PAINT code)