質問です

1・C言語の後、WINDOWSプログラムを勉強しているのですが
いまさらながらAPIというのが何の事かよく分かっておりません
createwindow関数やgetmessage関数、BOOL型やCOLOREREF型、RGBマクロ等
を使ってプログラミングすることが
APIを使ってWINDOWSプログラムを作る ということなのでしょうか?

2・関数(例えばDialogBoxParam等)とマクロ(例えばDialogBox等)
の区別が分かりません、どう違うのでしょうか?

宜しくお願いします