I am not sure what you mean by "Rich GUI Design" but interacting with the Windows APIs is fairly straight forward.
First you will need this namespace included in your probject:
using System.Runtime.InteropServices;
Then to work with the APIs you woudl do something like this:
[DllImport("User32.dll")]
public static extern Int32 FindWindow(String lpClassName,String lpWindowName);
The [DLLImport(<dll>)] directive does at it implies, it imports a specific DLL into your application.
FindWindow is a a function that exists inside of the User32.dll but, to be able to work with it in your code, you must define it as such. (extern keyword defines the function as being external)
Then to use this you would do something like
IntPtr someWindow = FindWindow("ClassName", null);
Obviously this particular funtion doesn't provide any useful functionality without using it in conjunction with other functions inside of the DLL but you get the point.
In so far as a book is concerned, I know that Petzold did a Win32 API Programming book, although the book focused on using Visual Basic, not C#. I suggest going to Amazon or the like and do a search for Win32 API Programming with C#.
hth.
================================================== =========
I will only tell you how to do it, not do it for you.
Unless, of course, you want to hire me to do work for you.
================================================== =========
Read this if you want to know how to get a correct reply for your question:
http://www.catb.org/~esr/faqs/smart-questions.html
^^Took that from planoie's profile^^
^^Modified text taken from gbianchi profile^^
================================================== =========