Yes. C# supports Win32 application development via the .NET Framework.
The Framework provides a fairly complete set of Windows GUI
development classes in the System.Windows.Forms namespace.
Any functions in the Win32 API that don't have a .NET Framework equivalent
may be accessed using P/Invoke, which is a way of invoking functions in
DLLs from .NET applications.
Yes. Read this link to find more information on how it's done.
(Contributed by Glen Harman)