بله به تمام آن توابعی که از dll های ویندوز استفاده می کنیم API می گوییم(دقیق تر windows API).
برای یک مثال که خودتان می شناسید: تابع GetKeyboardState برای دریافت حالت کلید های کیبرد یک API هست، داخل user32.dll است و هدر آن نیز در Windows.h قرار دارد. import library آن نیز User32.lib هست که باید در کامپایر در linker تعریف شود (این مورد در VC به طور پیش فرض تعریف شده است، برای سایر موارد باید دستی اضافه کنیم)
تابع SetCursor برای کار باموس ، یا Rectangle برای گرافیک نیز API هستند، حال در dll های مختلف مثلا در Gdi32.lib که با نام GDI شناخته می شود.
پس نیاز به مثال مجدد نیست، همه توابعی که در آن مثالی که لینکش را گذاشتم دیدید و نمی شناختید یا در windoes.h قرار داشتند همه API بودند (یا کلا بخشی از SDK ویندوز).
API ها را نمی توان به Interrupt تعبیر کرد، فقط یکسری توابع برای انجام کارها هست، مثلا برای پیاده سازی توابع کار با کیبرد از ++C (و شاید در صورت نیاز اسمبلی) استفاده شود برای خواندن پورت های ورودی .
کلا حتی اگر شما یک سخت افزار بسازید و برای آن یکسری SDK یا توابعی منشر کنید که با فرخوانی آن ها بتوان با سخت افزارتان ارتباط برقرار کرد ( مثلا روی آن چیزی بنویسد، بوق بزند و ... ) در اصطلاح به آن ها API می گوییم.
در مورد CLR هم بله درست است.
JIT در شکل نیامده ولی کدها توسط همان JIT ترجمه می شوند
راستی توی برنامه نویسی win32 همه چیز رو باید خود برنامه نویس بسازه؟ اینجوری که من توی اون برنامه گرافیکی متوجه شدم، حتی یه دکمه هم وجود نداره
خیر همه چیز وجود دارد.(فراموش نکنید پایه تمامی قسمت های ویندوز win32 است)
من برای اینکه کاربران تازه کار درگیر control های پیشرفته نشوند حرفی از آن ها نزدم و فقط محیطی برای رسم اشکال فراهم کردم.
این مثال را ببینید(با عکس است):
http://www.winprog.org/tutorial/controls.html
شما مثل سایر شیوه ها و زبان های برنامه نویسی محیط visual دارید تا طراحی دیالوگ کنید، اما به راحتی آن ها یا .NET نیست. (و تعداد کنترل ها نیز به اندازه و وسعت .NET نیست)
مثلا در win32 این طور نیست که بر روی یک button کلیک کنید تا اتوماتیک رویدادی را بسازد و راحت داخلش کد بنویسید. شما باید ID آن button را کپی کنید و سپس در بخش مربوط به پیام ها خودتان دستی بخشی برای فراخوانی آماده کنید، (یعنی ID آن را در switch-case اضافه کنید)
در MFC این سختی کمتر شده و اتومات سازی مانند سایز زبان ها وجود دارد و کمتر نیاز به نوشتن دستی هست.
برای خواندن یا نوشتن اطلاعات در کنترل ها نیز، با یک = نمی توانید داده ها یا رشته ها را بخوانید. باید دستی پیامی به شکل زیر بفرستید با ID همان کنترل تا در متغیر مورد نظر داده کپی شود، مثلا برای اضافه کردن رشته به listbox:
int index = SendDlgItemMessage(hwnd, IDC_LIST, LB_ADDSTRING, 0, (LPARAM)"Hi there!");
زیاد تعجب نکنید، اکثر برنامه های معروف که در منزل استفاده می کنید در نسخه ویندوز خود، اگر از MFC کمک نگیرند، مستقیم از طریق همین win32 برنامه خود را نوشته اند:
3ds max ، Photoshop ، ...