Obsolete Windows Programming Elements
The following table provides a list of functions that are supported only for backward compatibility with the 16bit Windows API.
16bit Windows API  32bit Windows support 

_hread  Replaced by the ReadFile function. 
_hwrite  Replaced by the WriteFile function. 
_lclose  Replaced by the CloseHandle function. 
_lcreat  Replaced by the CreateFile function. 
_llseek  Replaced by the SetFilePointer function. 
_lopen  Replaced by the CreateFile function. 
_lread  Replaced by the ReadFile function. 
_lwrite  Replaced by the WriteFile function. 
AnsiLower  Replaced by the CharLower function. 
AnsiLowerBuff  Replaced by the CharLowerBuff function. 
AnsiNext  Replaced by the CharNext function. 
AnsiPrev  Replaced by the CharPrev function. 
AnsiToOem  Replaced by the CharToOem function. 
AnsiToOemBuff  Replaced by the CharToOemBuff function. 
AnsiUpper  Replaced by the CharUpper function. 
AnsiUpperBuff  Replaced by the CharUpperBuff function. 
AnyPopup  Not generally useful. Maintained for compatibility with Windows 1.x. 
CloseMetaFile  Replaced by the CloseEnhMetaFile function. 
CopyLZFile  Replaced by the LZCopy function. 
CopyMetaFile  Replaced by the CopyEnhMetaFile function. 
CreateDIBPatternBrush  Replaced by the CreateDIBPatternBrush function. 
CreateDiscardableBitmap  Replaced by the CreateCompatibleBitmap function. 
CreateMetaFile  Replaced by the CreateEnhMetaFile function. 
DefHookProc  Replaced by the CallNextHookEx function. 
DeleteMetaFile  Replaced by the DeleteEnhMetaFile function. 
EnumFontFamilies  Replaced by the EnumFontFamiliesEx function. 
EnumFontFamProc  Replaced by the EnumFontFamExProc function. 
EnumFonts  Replaced by the EnumFontFamiliesEx function. 
EnumFontsProc  Replaced by the EnumFontFamExProc function. 
EnumMetaFile  Replaced by the EnumEnhMetaFile function. 
EnumMetaFileProc  Replaced by the EnhMetaFileProc function. 
EnumTaskWindows  Replaced by the EnumThreadWindows function. 
FloodFill  Replaced by the ExtFloodFill function. 
FreeModule  Replaced by the FreeLibrary function. 
FreeProcInstance  Not necessary and has no effect. Windows can call entry points directly. 
FreeResource  Replaced as follows:

GetBitmapBits  Replaced by the GetDIBits function. 
GetCharWidth  Replaced by the GetCharWidth32 function. 
GetClassWord  Replaced by the GetClassLong function 
GetCurrentTime  Replaced by the GetTickCount function. 
GetFreeSpace  Replaced by the GlobalMemoryStatus function. 
GetKBCodePage  Replaced by the GetOEMCP function. 
GetMetaFile  Replaced by the GetEnhMetaFile function. 
GetMetaFileBitsEx  Replaced by the GetEnhMetaFileBits function. 
GetPrivateProfileInt  Replaced by registry support. 
GetPrivateProfileSection  Replaced by registry support. 
GetPrivateProfileSectionNames  Replaced by registry support. 
GetPrivateProfileString  Replaced by registry support. 
GetPrivateProfileStruct  Replaced by registry support. 
GetProfileInt  Replaced by registry support. 
GetProfileSection  Replaced by registry support. 
GetProfileString  Replaced by registry support. 
GetSysModalWindow  The new input model does not support system modal windows. 
GetTextExtentPoint  Replaced by the GetTextExtentPoint32 function. 
GetWindowTask  Replaced by the GetWindowThreadProcessId function. 
GetWindowWord  Replaced by the GetWindowLong function. 
GlobalCompact  Not necessary and has no effect. 
GlobalFix  Not necessary and has no effect. 
GlobalFlags  Not necessary and has no effect. 
GlobalLRUNewest  Not necessary and has no effect. 
GlobalLRUOldest  Not necessary and has no effect. 
GlobalUnfix  Not necessary and has no effect. 
GlobalUnWire  Not necessary and has no effect. 
GlobalWire  Not necessary and has no effect. 
IsBadHugeReadPtr  Equivalent to the IsBadReadPtr function. There is only one memory model. 
IsBadHugeWritePtr  Equivalent to the IsBadWritePtr function. There is only one memory model. 
LimitEmsPages  Not necessary and has no effect. 
LoadModule  Replaced by the CreateProcess function. 
LocalCompact  Not necessary and has no effect. 
LocalFlags  Not necessary and has no effect. 
LocalShrink  Not necessary and has no effect. 
LockSegment  Not necessary and has no effect. 
LZDone  Replaced by the LZCopy function. 
LZStart  Replaced by the LZCopy function. 
MakeProcInstance  Not necessary and has no effect. Windows can call entry points directly. 
OemToAnsi  Replaced by the OemToChar function. 
OemToAnsiBuff  Replaced by the OemToCharBuff function. 
OpenFile  Replaced by the CreateFile function. 
PlayMetaFile  Replaced by the PlayEnhMetaFile function. 
PlayMetaFileRecord  Replaced by the PlayEnhMetaFileRecord function. 
PostAppMessage  Replaced by the PostThreadMessage function. 
PrinterMessageBox  Not necessary and has no effect. 
RegCreateKey  Replaced by the RegCreateKeyEx function. 
RegEnumKey  Replaced by the RegEnumKeyEx function. 
RegOpenKey  Replaced by the RegOpenKeyEx function. 
RegQueryValue  Replaced by the RegQueryValueEx function. 
RegSetValue  Replaced by the RegSetValueEx function. 
SetBitmapBits  Replaced by the SetDIBits function. 
SetClassWord  Replaced by the SetClassLong function. 
SetDebugErrorLevel  Not necessary and has no effect. 
SetHandleCount  Not necessary and has no effect. There is no explicit file handle limit. 
SetMessageQueue  Not necessary and has no effect. Message queues are expanded as needed. 
SetMetaFileBitsEx  Replaced by the SetEnhMetaFileBits function. 
SetSwapAreaSize  Not necessary and has no effect. 
SetSysModalWindow  Not necessary and has no effect. 
SetWindowsHook  Replaced by the SetWindowsHookEx function. 
SetWindowWord  Replaced by the SetWindowLong function. 
UnhookWindowsHook  Replaced by the UnhookWindowsHookEx function. 
UnlockResource  Not necessary and has no effect. 
UnlockSegment  Not necessary and has no effect. 
WaitForPrinterChange  Replaced by the FindFirstPrinterChangeNotification, FindNextPrinterChangeNotification, and FindClosePrinterChangeNotification functions. 
WinExec  Replaced by the CreateProcess function. 
WNetAddConnection  Replaced by the WNetAddConnection2 function. 
WritePrivateProfileSection  Replaced by registry support. 
WritePrivateProfileString  Replaced by registry support. 
WritePrivateProfileStruct  Replaced by registry support. 
WriteProfileSection  Replaced by registry support. 
WriteProfileString  Replaced by registry support. 
Yield  Not necessary and has no effect. The message loop handles synchronization.
Threads that create processes can use WaitForInputIdle to wait until the new process has finished its initialization. 
Build date: 3/25/2010
Community Additions
Show: