Should I call CWvsContext::SetScreenResolution to re-adjust client's resolution?
That function doesn't exist in older versions (since old versions don't have multiple resolutions lol) but yeah that's what the higher version clients use to change resolutions. As Eric said, you'd need to mess with the Gr2D methods and do all the necessary resolution changes (relocating UI, map rendering stuff, etc) while the game is running - in other words, you need to write your own version of CWvsContext::SetScreenResolution compatible with your version (along with all the functions called inside it). Definitely more complicated than the current resolution edits that were released, but I did it for v83 and Eric did it for a couple other versions so it's definitely possible.