i'll make it simple for you, Don :P
"rv" is a macro
besides giving you the return value, it allows things like defining text strings and so on
by "return value", they mean "whatever the function returns in EAX"
have a look at masm32\help\hlhelp.chm
open that file, Macro Catagories, Code Calling Macros (first catagory)
you found that, already :t
the "!" operator is logical NOT
but, it is not part of the macro name
it is part of the .if/.endif syntax
to understand how it's used.....
.if rv(.....)
.endif
in this code, if the return value is non-zero, the code inside the .if/.endif block will be executed
as you know, some API functions return 0 to indicate success, some return 0 to indicate an error
so ".if rv" means "if the return value is non-zero"
".if !rv" means "if the return value is zero"
and, yes......
i don't think anyone uses the rv macro more than qWord

you can look at his code for many examples