1. WinMain함수
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)
- hInstance : 프로그램의 인스턴스 핸들
- hPrevInstance : 바로 앞에 실행된 현재 프로그램의 인스턴스 핸들
없는 경우에는 NULL이 되어야하며 Win32에서는 항상 NULL
- lpCmdLine : 명령행으로 입력된 프로그램 인수. DOS의 argv에 해당
- nCmdShow : 프로그램이 실행될 형태 / 최소화, 보통모양 등이 전달
2. 윈도우 클래스
윈도우 클래스는 windows.h에 정의되어있는 구조체이다.
typedef struct tagWNDCLASS
{
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCSTR lpszMenuName;
LPCSTR lpszClassName;
} WNDCLASS;
- style : 윈도우의 스타일을 정의
- lpfnWndProc : 메시지가 발생할 때마다 여기에 지정된 함수가 호출됨
- cbClsExtra, cbWndExtra : 윈도우가 내부적으로 아주 특수한 목적에 사용되는 공간. 사용되지 않으면 0으로 지정
- hInstance : 윈도우의 클래스를 사용하는 프로그램의 번호
- hIcon, hCursor : 윈도우가 사용할 마우스와 출력되는 아이콘을 정함.
- hbrBackground : 윈도우의 배경색상 정의, 보통 GetStockObject라는 함수를 사용하여 윈도우에서 기본적으로 제공하는 브러쉬를 사용
- lpszMenuName : 프로그램이 사용할 메뉴 지정
- lpszClassName : 윈도우 클래스의 이름을 정의. CreateWindow함수에 전달되며
CreateWindow함수는 윈도우 클래스에서 정의한 값을 참조하여 윈도우를 생성한다
-
'Programming > WinAPI' 카테고리의 다른 글
악성코드에 자주 사용되는 함수목록 (0) | 2017.03.04 |
---|---|
[API함수] WaitForSingleObject (0) | 2017.03.02 |
WinAPI 핸들에 대한 이해 (0) | 2017.02.08 |
API란? (0) | 2017.02.08 |
WinAPI 윈도우의 특징 (0) | 2017.02.08 |