To be a fully functional 32-bit operating system, the base API set present in Windows 3.0 needs several extensions. The motivation for the extensions is very precise. Extensions are required to:
Support multiple threads of execution within a process with each process executing in a separate address space
Support a flat 32-bit address space
Expose security on all objects that can be shared between processes
Promote a portable 32-bit API interface
Note that the focus of the Win32 effort is to extend the current Windows 3.0 technology to allow easy migration from of Windows 3.0 apps to Win32 on x86 and MIPS platforms.