כאשר אתה יוצר פרוייקט חדש, יש לך בחירה איזה פרוייקט ליצור, cosule application, win32 application, MFC application וכו'. בכדי להריץ קוד כזה אתה צריך שהפרוייקט יהיה Win32 application.
כל EXE או DLL או שאר הירקות שמבוצעות בחלונות יש להם מס' מזהה, דהיינו Instance Handle. אתה משתמש בו לכל מיני קריאות של העלאת נתונים/פונקציות וכו מהקבצים הללו.
HWND משמש לך כמזהה של חלון שהוא למעשה זיכרון שהוקצא ואותחל ע"י פונקציות API ליצירת חלון. HINSTANCE משמש לך כמזהה של הקובץ המורץ עצמו, כלומר התוכנית עצמה מלבד העובדה שמדובר עליה לא על הדיסק אלא אחרי שנטענה לזכרון. כלומר שניהם סוג של מצביעים לזיכרון, אבל המוצבעים הם שני דברים שונים.
אובייקטים אחרים כי גם הם למעשה בבסיסם חלון עם תכונות נוספות, או תכונות שנקבעו לערך מסויים ולא ניתן לשנות אותן, בדומה מאוד לירושה בOOP אבל זה נעשה בC ולכן לא השתמש במנגנון של C++ לירושה.
כל מה שאתה רואה על המסך מתבסס על חלון עם תוספות כאלה ואחרות, כך שלכל פקד יש את HWND משלו. בתרשים הורשה של MFC אפשר לראות את זה בבירור, כשמחלקת הבסיס היא CWnd.