I'm trying to compile in Mono on Lubuntu 16.04.1 a very helpful open-source Windows program, "Ketarin".

It uses a function, "GetUpdateRect", which it finds in user32.dll, using this code:

[DllImport("user32.dll", EntryPoint = "GetUpdateRect", CharSet = CharSet.Auto)]
private static extern IntPtr GetUpdateRectInternal(IntPtr hWnd, ref Rectangle r, bool eraseBackground);

This is a non-portable, Windows-specific function/system-call, so I guess I'm asking if anyone can point me to functions or methods available via Mono on Linux that can do what GetUpdateRect does on Windows.

Is there a standard list of equivalents between Windows functions and Mono-on-Linux functions?

And maybe I need to ask where the people who port Windows programs to run on Linux "hang out".

Thanks for thinking about these things.

1 Answer 1


Well, the answer is that I was asking the wrong question.
This Windows function is called by ObjectListView.cs, which is used by many projects and solutions, not just the program I am porting.

It uses so many Windows system calls that the developers are not trying to make it work on Linux or Mac. There's a very good discussion in the ObjectListView discussion board. The comment by Steve Hiner (2015-11-29) changed the direction of my search. Steve's approach is "I already created a proxy that uses OLV on Windows and the stock listview on Linux and Mac. That would be one way OLV could provide pseudo mono support, it could just use the stock listview without any fancy features."

I may need to ask a different question about how to do what Steve describes.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .