No offense, but why not derive a new stream class that encapsulates RWops instead of converting it? Conversion is more of a hassle anyway. You have to somehow decipher the type of stream it is and make sure it's intercompatible with BOTH TStream and RWops. It's simpler to encapsulate:
[pascal]type
TRWStream = class(TStream)
private
fOps: PSDL_RWops;
fOwnsOps: Boolean;
public
constructor Create(ops: PSDL_RWops; owns: boolean = true);
end;[/pascal]

And so on. Much simpler than attempting type conversion.