Windows API Data Types

Various simple data types define the size and meaning of parameters, return values, and members associated with the functions, messages, and structures of Microsoft Windows. The following table contains character, integer, and Boolean types; pointer types; and handles. The character, integer, and Boolean types are common to most C compilers. Many of the pointer-type names begin with a prefix of P or LP. A Windows-based application uses a handle to refer to a resource that has been loaded into memory. Windows provides access to these resources through internally maintained tables that contain individual entries for each handle. Each entry in the handle table contains the address of the resource and a means of identifying the resource type.

Type Definition
ABORTPROC Pointer to an application-defined callback function that the operating system calls when a print job is to be cancelled during spooling. See AbortProc for information on functions of this type.
APPLET_PROC Pointer to a library-defined callback function that is the entry point for a Control Panel application. See CplApplet for information on functions of this type.
ATOM Atom (a reference to a character string in an atom table).
BOOL Boolean variable (should be TRUE or FALSE).
BOOLEAN Boolean variable (should be TRUE or FALSE).
BYTE Byte (8 bits).
CCHAR Windows character.
CHAR Windows character.
COLORREF Red, green, blue (RGB) color value (32 bits).
CONST Variable whose value is to remain constant during execution.
CRITICAL_SECTION Critical-section object.
CTRYID Country identifier.
DLGPROC Pointer to an application-defined dialog box callback procedure.
DWORD Doubleword (32 bits).
DWORDLONG Double (64 bits).
EDITWORDBREAKPROC Pointer to an application-defined callback function that the operating system calls when a multiline edit control needs to break a line of text. See EditWordBreakProc for information on functions of this type.
ENHMFENUMPROC Pointer to an application-defined callback function that enumerates enhanced-metafile records.
ENUMRESLANGPROC Pointer to an application-defined callback function that enumerates resource languages.
ENUMRESNAMEPROC Pointer to an application-defined callback function that enumerates resource names.
ENUMRESTYPEPROC Pointer to an application-defined callback function that enumerates resource types.
FARPROC Pointer to a callback function.
FLOAT Floating-point variable.
FONTENUMPROC Pointer to an application-defined callback function that enumerates fonts.
GLOBALHANDLE Handle of a global memory block.
GOBJENUMPROC Pointer to an application-defined callback function that enumerates graphics device interface (GDI) objects.
GRAYSTRINGPROC Pointer to an application-defined callback function that draws gray text.
HACCEL Handle of an accelerator table.
HANDLE Handle of an object.
HBITMAP Handle of a bitmap.
HBRUSH Handle of a brush.
HCOLORSPACE Windows 95 only: Handle of a logical color space.
HCONV Handle of a dynamic data exchange (DDE) conversation.
HCONVLIST Handle of a DDE conversation list.
HCURSOR Handle of a cursor.
HDC Handle of a device context (DC).
HDDEDATA Handle of DDE data.
HDWP Handle of a deferred window position structure.
HENHMETAFILE Handle of an enhanced metafile.
HFILE Handle of a file.
HFONT Handle of a font.
HGDIOBJ Handle of a GDI object.
HGLOBAL Handle of a global memory block.
HHOOK Handle of a hook.
HICON Handle of an icon.
HIMAGELIST Handle to an image list.
HINSTANCE Handle of an instance.
HKEY Handle of a registry key.
HKL Windows 95 only: Handle of a keyboard layout.
HLOCAL Handle of a local memory block.
HMENU Handle of a menu.
HMETAFILE Handle of a metafile.
HMODULE Handle of a module.
HOOKPROC Pointer to an application-defined hook function.
HPALETTE Handle of a palette.
HPEN Handle of a pen.
HRGN Handle of a region.
HRSRC Handle of a resource.
HSZ Handle of a DDE string.
HWINSTA Handle of a workstation.
HWND Handle of a window.
INT Signed integer.
LANGID Language identifier.
LCID Locale identifier.
LCTYPE Locale type.
LINEDDAPROC Pointer to a callback function that processes line coordinates.
LOCALHANDLE Handle of a local memory block.
LONG 32-bit signed value.
LONGLONG Double (64 bits).
LP Pointer to a null-terminated UnicodeT string.
LPARAM 32-bit message parameter.
LPBOOL Pointer to a Boolean variable.
LPBYTE Pointer to a byte.
LPCCH Pointer to a constant Windows character.
LPCCHOOKPROC Pointer to an application-defined hook function.
LPCFHOOKPROC Pointer to an application-defined hook function.
LPCH Pointer to a Windows character.
LPCOLORREF Pointer to a COLORREF value.
LPCRITICAL_SECTION Pointer to a critical-section object.
LPCSTR Pointer to a constant null-terminated Windows character string.
LPCTSTR Pointer to a constant null-terminated Unicode or Windows character string.
LPCWCH Pointer to a constant null-terminated Unicode character.
LPCWSTR Pointer to a constant null-terminated Unicode character string.
LPDWORD Pointer to an unsigned doubleword (32 bits).
LPFRHOOKPROC Pointer to an application-defined hook function.
LPHANDLE Pointer to a handle.
LPHANDLER_FUNCTION Pointer to a handler function.
LPINT Pointer to a signed integer.
LPLONG Pointer to a signed long (32 bits).
LPOFNHOOKPROC Pointer to an application-defined hook function.
LPPRINTHOOKPROC Pointer to an application-defined hook function.
LPSETUPHOOKPROC Pointer to an application-defined hook function.
LPSTR Pointer to a null-terminated Windows character string.
LPTCH Pointer to a Unicode character or a Windows character.
LPTSTR Pointer to a null-terminated Windows or Unicode character string.
LRESULT Signed result of message processing.
LPVOID Pointer to any type.
LPWCH Pointer to a Unicode character.
LPWORD Pointer to an unsigned word (16 bits).
LPWSTR Pointer to a null-terminated Unicode character string.
LUID Locally unique identifier.
MFENUMPROC Pointer to an application-defined callback function that enumerates metafile records.
NPSTR Pointer to a null-terminated Windows character string.
NWPSTR Pointer to a null-terminated Unicode string.
PBOOL Pointer to a Boolean variable.
PBOOLEAN Pointer to a Boolean variable.
PBYTE Pointer to a byte.
PCCH Pointer to a constant Windows character.
PCH Pointer to a Windows character.
PCHAR Pointer to a Windows character.
PCRITICAL_SECTION Pointer to a critical-section object.
PCSTR Pointer to a constant null-terminated Windows character string.
PCWCH Pointer to a constant Unicode character.
PCWSTR Pointer to a constant null-terminated Unicode character string.
PDWORD Pointer to an unsigned doubleword (32 bits).
PFLOAT Pointer to a floating-point variable.
PFNCALLBACK Pointer to a callback function.
PHANDLE Pointer to a handle.
PHANDLER_ROUTINE Pointer to a handler routine.
PHKEY Pointer to a registry key.
PINT Pointer to a signed integer.
PLCID Pointer to a locale identifier.
PLONG Pointer to a signed long (32 bits).
PLUID Pointer to a locally unique identifier (LUID).
PROC Pointer to a callback function.
PROPENUMPROC Pointer to an application-defined callback function that enumerates window properties. See PropEnumProc for information on functions of this type.
PROPENUMPROCEX Pointer to an application-defined callback function that enumerates window properties. See PropEnumProcEx for information on functions of this type.
PSHORT Pointer to a signed short (16 bits).
PSID Pointer to a security identifier (SID).
PSTR Pointer to a null-terminated Windows character string.
PSZ Pointer to a null-terminated Windows character string.
PTBYTE Pointer to a Windows or Unicode character.
PTCH Pointer to a Windows or Unicode character.
PTCHAR Pointer to a Windows or Unicode character.
PTSTR Pointer to a null-terminated Windows or Unicode character string.
PUCHAR Pointer to an unsigned Windows character.
PUINT Pointer to an unsigned integer.
PULONG Pointer to an unsigned long (32 bits).
PUSHORT Pointer to an unsigned short (16 bits).
PVOID Pointer to any type.
PWCH Pointer to a Unicode character.
PWCHAR Pointer to a Unicode character.
PWORD Pointer to an unsigned word (16 bits).
PWSTR Pointer to a null-terminated Unicode character string.
REGSAM Security access mask for registry key.
SC_HANDLE Handle of a service.
SENDASYNCPROC Pointer to an application-defined callback function that the operating system calls when the SendMessageCallback function is called. The system passes the message to the callback function after passing the message to the destination window procedure. See SendAsyncProc for information on functions of this type.
SERVICE_STATUS_HANDLE Handle of a service status value.
SHORT Short integer.
SPHANDLE Pointer to a handle.
TBYTE Windows or Unicode character.
TCHAR Unicode character or Windows character.
TIMERPROC Pointer to an application-defined timer callback function.
UCHAR Unsigned Windows character.
UINT Unsigned integer.
ULONG Unsigned long integer (32 bits).
USHORT Unsigned short integer (16 bits).
VOID Any type.
WCHAR Unicode character.
WNDENUMPROC Pointer to an application-defined callback function that enumerates windows.
WNDPROC Pointer to an application-defined window procedure.
WORD Unsigned word (16 bits).
WPARAM 32-bit message parameter.
YIELDPROC Pointer to a yield callback function.

The information in this page was shamelessly nicked from the Visual FoxPro Windows 32bit API help file. This information has been one of the most useful references I have found for understanding the data types used by the Windows API.