Error 21 in LoadModule16 means that the file exists but is 32-bit, which seems to be the appropriate error in that case.
I dunno about LoadModule16() (no means to test it since it's a Win16 function...) but for LoadLibrary16() (which is just a one-line wrapper around the former in wine) at least WinXP returns 0 and sets the errorcode to 87 (ERROR_INVALID_PARAMETER).
-flx