"he even gave us a list with the name of the global variables (sigh) he wants us to use." -> Your boss clearly doesn't trust his team. Get him to trust you (may or may not be possible), and everything else will follow.
We programmers tend to look at all things as technology problems, even in the way the question was asked ("inadequate?" what?) when it's almost always an interpersonal problem.
I've had to write some C that interfaces with C#, so providing a low level library for a C# UI might be an option, but implementing it without the Boss's permission...yeah probably not so wise.
He failed to follow the first requirement (ANSI C). Everything else afterwards is merely more justification to distrust him or her.