API مخفف Application Programming Interface میباشد که به معنای رابط برنامهسازی کاربردی است. نام API به توابعی اطلاق میشود که در فایلهای مختلف ویندوز مانند Advapi32.dll ، User32dll ، Ole32.dll ، Kernel32.dll ، Winmm.dll ، Winspool.drr ، Gdi32.dll ، Mpr.dll ، Netapi32.dll ، Sheu32.dll ، Rasapi32.dll ، Version.dll ، Wsock32.dll ، Comdlg32.dll، وجود دارند.
ویندوز برای صدها کار مختلف خود از این تابعها استفاده میکند و برنامههای کاربردی نیز به طور متعدد از این توابع استفاده میکنند. به عنوان مثال در زبان برنامهنویسی ویژوال بیسیک هر خط کد را که تایپ میکنید و بعد برنامه را Run میکنید، توسط توابع API کنترل میشوند. هنگامی که دستور Form1.Print را برای نمایش یک پیغام بر روی فرم صادر میکند، در واقع ویژوال بیسیک در پشت صحنه از تابع API، Textout جهت نمایش این پیغام استفاده میکند و یا هنگامی که از توابع رسم بیضی استفاده میکنید، درحقیقت از تابع API، Elliptic استفاده میشود.
و همچنین توابع دیگر، حرکت ماوس، صفحه کلید، رنگها، دکمهها، منوها و صدها عملیات دیگر .
دلایل استفاده از توابع API در زبانهای مختلف برنامهنویسی میتواند این باشد که:
1- توابع API به دلیل آنکه در فایلهای dll هر سیستم عامل ویندوز میباشد و در هر مکان مانند یکدیگر میباشند پس نیازی به ارائه آن فایل dll در نسخه برنامه نمیباشد و درنتیجه حجم نسخه کم میشود و درضمن سندیت برنامه نیز بیشتر میشود و میتوان گفت که شما از منابع ویندوز به نحو احسن استفاده کردهاید.
2- نسخههای ویندوز به طور مداوم تغییر می کند ولی به دلیل آنکه سازندگان همیشه حالتی را در نظر میگیرند که نسخههای قبلی را نیز پشتیبانی کند. درنتیجه اگر شما برنامهای را به کمک توابع API بنویسید با تغییر نسخه ویندوز نیازی به تغییر جدی در توابع API نمیباشد.
3- بیشتر زبانهای برنامهنویسی (بهخصوص زبانهای تحت ویندوز که خود به صورت پنهان از توابع API استفاده میکنند، ممکن است به علت محدودیتهایی نتوانند تمام امکانات توابع را در اختیار قرا دهند. شما با دسترسی مستقیم به توابع میتوانید از حداکثر قابلیتهای تابع استفاده کنید.
4- در بعضی از زبانهای برنامهنویسی برای آنکه بتوان یک حالت را بوجود آورد و یا کار مشخصی را انجام داد، باید کدهای زیادی بنویسیم و یا در زمان خطاگیری مدت زیادی را صرف کنیم و به طور حتم کاربر استفادهکننده از برنامه شما نیز باید زمان بیشتری را برای گرفتن جواب صرف کند. این موارد ذکر شده هر کدام به نوبه خود میتوانند از محبوبیت، قدرتمند و خوانابودن برنامه بکاهند. ولی توابع API به دلیل آنکه روتین شده و از قبل نوشته شده میباشند پس فقط کافیست تابع را فراخوانی کنیم و به آن ورودی دهیم و خروجی مورد نظر خود را دریافت کنیم.
5- همانطور که در توابع این کتاب نیز خواهید دید، بیشتر توابع کارهایی را انجام میدهند که زبانهای برنامهنویسی قادر به انجام آن نمیباشند. به عنوان مثال به تابع SetlateradwindowAttributes مراجعه کنید که باعث میشود یک پنجره (فرم و یا کنترلهای داخل آن) و با یک رنگ مشخص در آنها به مقدار دلخواه به حالت شفاف و Transparent تبدیل شوند. و یا توابع دیگر مانند StretchBlt , TransparentBlt , LokworkStation , TimGetTim , SHShutDownDialog و ...