Win32 API(Application Programming Interface)
: 윈도우 프로그래밍에 사용되는 운영체제에 호출되는 함수와 프로시저의 모음 라이브러리
동적 링크 라이브러리(DLL: Dynamic Link Library) 함수 호출 사용시
WinAPI 종류
■ Win16API : 프로시저 이름 대소문자 구분 X
윈도우 3.1 win16API
■ Win32API : 프로시저 이름 대소문자 구분 O
c:\Windows\System\ ☞ 윈도우 95/98/2000/XP : Win32API
Uer32.dll Kernel32.dll Gdi32.dll
c:\Windows\System32\ ☞
DLL 종류/기능
AdvApi32.dll 보안과 레지스트리 호출 등
ComDlg32.dll 공용 대화상자
Gdi32.dll 그래픽 장치 인터페이스(GDI: Graphic Device Interface)
Kernel32.dll 윈도우 핵심
Shell32.dll 32비트 쉘
User32.dll 사용자 인터페이스
Lz32.dll 압축
Mpr.dll Multiple Provider Rouler(MPR)
NetApi32.dll 네트워크
Version.dll 버전
WinMm.dll 멀티미디어
WinSpool.drv 프린트 스풀
# 윈도우
## 윈도우 관리
### 윈도우 생성/파괴
윈도우 생성 CreateWindowA/winuser/(클래스명,윈도우명,스타일,x,y,w,h,부모,메뉴,hInstance,lpParam)
윈도우 생성(확장) CreateWindowExA/winuser/(확장스타일,클래스명,윈도우명,스타일,x,y,w,h,부모,메뉴,hInstance,*LPARAM)
윈도우 파괴 DestroyWindow/winuser/(핸들)
윈도우 최소화 CloseWindow/winuser/(핸들)
### 윈도우 위치/크기
윈도우 위치/크기 얻기 GetWindowRect/winuser/(핸들, *RECT)
클라이언트 위치/크기 얻기 GetClientRect/winuser/(핸들, *RECT)
위치/크기 변경 MoveWindow/winuser/(핸들, x, y, w, h, Repaint)
위치/크기/Z순서 변경 SetWindowPos/winuser/(핸들, 다음핸들, x, y, w, h, 플래그)
여러 윈도우 위치/크기 변경 DeferWindowPos/winuser
위치/크기/최대최소 조사 GetWindowPlacement/winuser
위치/크기/최대최소 변경 SetWindowPlacement/winuser
좌표변환 ScreenToClient/winuser
좌표변환 ClientToScreen/winuser
다른윈도우 기준 좌표로 변환 MapWindowPoints/winuser
중앙으로 MoveToParentCenter/winuser
작업영역 특정크기로 맞추기 AdjustWindowRect/winuser
작업영역 특정크기로 맞추기 AdjustWindowRectEx/winuser
### 윈도우 상태 조사/변경
조사 GetWindowText/winuser
조사 SetWindowText/winuser
조사 GetWindowTextLength/winuser
조사 IsWindow/winuser
조사 IsWindowVisible/winuser
조사 IsWindowEnabled/winuser
조사 IsChild/winuser
조사 IsIconic/winuser
조사 IsZoomed/winuser
조사 EnableWindow/winuser
조사 ShowWindow/winuser
### 윈도우 Z순서 변경
조사 SetForegroundWindow/winuser
조사 GetForegroundWindow/winuser
조사 SetActiveWindow/winuser
조사 GetActiveWindow/winuser
### 윈도우 찾기
조사 FindWindow/winuser
조사 FindWindowEx/winuser
조사 WindowFromPoint/winuser
조사 EnumWindows/winuser
조사 EnumWindowsProc/winuser
## 윈도우 메시지
##윈도우 정보
클래스명 가져오기 GetClassName/winuser/(핸들,o클래스명,길이) 문자수/0
클래스 정보 가져오기 GetClassLongA/winuser/(핸들,인덱스) 요청값/0
클래스 정보 설정 SetClassLongA/winuser/(핸들,인덱스,적용값) 32비트정수 이전값/0
윈도우 정보 가져오기 GetWindowLongA/winuser/(핸들,인덱스) 요청값/0
윈도우 정보 설정 SetWindowLongA/winuser/(핸들,인덱스,적용값) 32비트정수 이전값/0
윈도우클래스 등록 RegisterClassExA/winuser/(구조체포인터) 핸들/0
윈도우클래스 삭제 UnregisterClassA/winuser/(클래스명,[핸들])
모듈의 파일명 가져오기 GetModuleFileNameA/libloaderapi/(핸들,o파일명,길이)
모듈의 핸들 가져오기 GetModuleHandleA/libloaderapi/(모듈명)
프로세스 메모리에 로드 LoadLibraryA/libloaderapi/
프로세스 메모리에 로드 LoadLibraryExA/libloaderapi/
새 인스턴스 생성 LoadModule/winbase/(윈95 호환, 윈32용은 CreateProcess)
프로세스 반환 FreeLibrary/libloaderapi/
#메시지
#키보드/마우스
#문자열
#시간/타이머
#파일
#폰트
#그래픽
#드로잉
#시스템 정보
#메모리
1. Winuser 함수 (202개)
AdjustWindowRect
AdjustWindowRectEx
AllowSetForegroundWindow
AnimateWindow
AnyPopup
ArrangeIconicWindows
BeginDeferWindowPos
BringWindowToTop
BroadcastSystemMessage
BroadcastSystemMessageA
BroadcastSystemMessageExA
BroadcastSystemMessageExW
BroadcastSystemMessageW
CalculatePopupWindowPosition
CallMsgFilterA
CallMsgFilterW
CallNextHookEx
CallWindowProcA
CallWindowProcW
CascadeWindows
ChangeWindowMessageFilter
ChangeWindowMessageFilterEx
ChildWindowFromPoint
ChildWindowFromPointEx
CloseWindow
CreateMDIWindowA
CreateMDIWindowW
CreateWindowExA
CreateWindowExW
DeferWindowPos
DefFrameProcA
DefFrameProcW
DefMDIChildProcA
DefMDIChildProcW
DefWindowProcA
DefWindowProcW
DeregisterShellHookWindow
DestroyWindow
DispatchMessage
DispatchMessageA
DispatchMessageW
EndDeferWindowPos
EndTask
EnumChildWindows
EnumPropsA
EnumPropsExA
EnumPropsExW
EnumPropsW
EnumThreadWindows
EnumWindows
FindWindowA / 창 찾기
FindWindowExA
FindWindowExW
FindWindowW
GetAltTabInfoA
GetAltTabInfoW
GetAncestor
GetClassInfoA
GetClassInfoExA
GetClassInfoExW
GetClassInfoW
GetClassLongA
GetClassLongPtrA
GetClassLongPtrW
GetClassLongW
GetClassName
GetClassNameA
GetClassNameW
GetClassWord
GetClientRect
GetDesktopWindow
GetForegroundWindow
GetGUIThreadInfo
GetInputState
GetLastActivePopup
GetLayeredWindowAttributes
GetMessage
GetMessageA
GetMessageExtraInfo
GetMessagePos
GetMessageTime
GetMessageW
GetParent
GetProcessDefaultLayout
GetPropA
GetPropW
GetQueueStatus
GetShellWindow
GetSysColor
GetSystemMetrics
GetTitleBarInfo
GetTopWindow
GetWindow
GetWindowDisplayAffinity
GetWindowInfo
GetWindowLongA
GetWindowLongPtrA
GetWindowLongPtrW
GetWindowLongW
GetWindowModuleFileNameA
GetWindowModuleFileNameW
GetWindowPlacement
GetWindowRect
GetWindowTextA
GetWindowTextLengthA
GetWindowTextLengthW
GetWindowTextW
GetWindowThreadProcessId
GetWindowWord
InSendMessage
InSendMessageEx
InternalGetWindowText
IsChild
IsGUIThread
IsHungAppWindow
IsIconic
IsProcessDPIAware
IsWindow
IsWindowArranged
IsWindowUnicode
IsWindowVisible
IsZoomed
KillTimer
LockSetForegroundWindow
LogicalToPhysicalPoint
MoveWindow
OpenIcon
PeekMessageA
PeekMessageW
PhysicalToLogicalPoint
PostMessageA
PostMessageW
PostQuitMessage
PostThreadMessageA
PostThreadMessageW
RealChildWindowFromPoint
RealGetWindowClassA
RealGetWindowClassW
RegisterClassA
RegisterClassExA
RegisterClassExW
RegisterClassW
RegisterShellHookWindow
RegisterWindowMessageA
RegisterWindowMessageW
RemovePropA
RemovePropW
ReplyMessage
SendMessage
SendMessageA
SendMessageCallbackA
SendMessageCallbackW
SendMessageTimeoutA
SendMessageTimeoutW
SendMessageW
SendNotifyMessageA
SendNotifyMessageW
SetAdditionalForegroundBoostProcesses
SetClassLongA
SetClassLongPtrA
SetClassLongPtrW
SetClassLongW
SetClassWord
SetCoalescableTimer
SetForegroundWindow
SetLayeredWindowAttributes
SetMessageExtraInfo
SetParent
SetProcessDefaultLayout
SetProcessDPIAware
SetPropA
SetPropW
SetSysColors
SetTimer
SetWindowDisplayAffinity
SetWindowLongA
SetWindowLongPtrA
SetWindowLongPtrW
SetWindowLongW
SetWindowPlacement
SetWindowPos
SetWindowsHookExA
SetWindowsHookExW
SetWindowTextA
SetWindowTextW
ShowOwnedPopups
ShowWindow
ShowWindowAsync
SoundSentry
SwitchToThisWindow
SystemParametersInfoA
SystemParametersInfoW
TileWindows
TranslateMDISysAccel
TranslateMessage
UnhookWindowsHookEx
UnregisterClassA
UnregisterClassW
UpdateLayeredWindow
WaitMessage
WindowFromPhysicalPoint
WindowFromPoint