Win32 API Documentation
The Win32 API (Application Programming Interface) is a set of functions and interfaces that allow applications to interact with the Microsoft Windows operating system. It provides access to a wide range of functionalities, from low-level hardware control to high-level user interface elements.
Memory Management
Functions for allocating, deallocating, and managing memory.
VirtualAlloc
Reserves or commits a region of pages in the virtual address space of the calling process.
LPVOID VirtualAlloc(
LPVOID lpAddress,
SIZE_T dwSize,
DWORD flAllocationType,
DWORD flProtect
);
Parameters
Name | Type | Description |
---|---|---|
lpAddress |
LPVOID |
The starting address of the region of pages to allocate. If this parameter is NULL , the system determines where to allocate the region. |
dwSize |
SIZE_T |
The size of the region of pages to allocate, in bytes. |
flAllocationType |
DWORD |
The type of memory allocation. This parameter can be one of the following values: MEM_COMMIT , MEM_RESERVE . |
flProtect |
DWORD |
The memory protection for the region of pages to be allocated. This parameter can be one of the following values: PAGE_EXECUTE , PAGE_READONLY , PAGE_READWRITE , PAGE_WRITECOPY , etc. |
Return Value
If the function succeeds, the return value is the base address of the allocated region. If the function fails, the return value is NULL
.
Note: Ensure proper handling of memory leaks by calling VirtualFree
when the allocated memory is no longer needed.
Process & Thread Management
Functions for creating, managing, and terminating processes and threads.
CreateProcess
Creates a new process and its primary thread. The new process runs in the same address space of the calling process.
BOOL CreateProcess(
LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInformation
);
Return Value
If the function succeeds, the return value is non-zero. If the function fails, the return value is zero.
Important: The lpProcessInformation
structure receives the handles and identifiers for the new process and its primary thread. These should be closed when no longer needed.
File I/O
Functions for interacting with files and file system objects.
CreateFile
Creates or opens a file or I/O device (such as a disk drive, removable media, or communications resource).
HANDLE CreateFile(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
Return Value
If the function succeeds, the return value is an open handle to the specified file or device. If the function fails, the return value is INVALID_HANDLE_VALUE
.
Always check the return value of CreateFile
and handle potential errors.
Window Management
Functions for creating and managing windows, dialog boxes, and controls.
CreateWindowEx
Creates an overlapped, pop-up, or child window. It can be used to create a child window that has the WS_EX_TRANSPARENT style.
HWND CreateWindowEx(
DWORD dwExStyle,
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam
);
Return Value
If the function succeeds, the return value is a handle to the new window. Otherwise, it is NULL
.
Graphics Device Interface (GDI)
Functions for performing graphics operations such as drawing lines, shapes, text, and images.
CreateSolidBrush
Creates a GDI brush object that is a solid color.
HBRUSH CreateSolidBrush(
COLORREF color
);
Parameters
Name | Type | Description |
---|---|---|
color |
COLORREF |
The RGB color value for the brush. |
Return Value
If the function succeeds, the return value is a handle to the new GDI brush object. If the function fails, it is NULL
.
Remember to delete brush objects using DeleteObject
when they are no longer needed to prevent resource leaks.
Common API Categories
- Memory Management
- Process & Thread Management
- File I/O
- Registry Operations
- Window and Message Handling
- Graphics Device Interface (GDI)
- Networking Functions
- Security and Access Control
- Service Control Manager
This page provides a glimpse into the vast capabilities of the Win32 API. For comprehensive details, please refer to the official Microsoft documentation.