Placing this statement at the beginning of each program unit is the easiest way to avoid difficulties due to undeclared or misspelled variable names. The CALL to the routine GetSystemInfo passes the address of the record. However, certain Win32 API routines require pointers to other routines as parameters. These may be routines that you write to customize a standard feature or they may be handlers for messages that you want to act on. To avoid this, a data type called a handle is used.
Handles use one level of indirection to access the data they reference.
The indirection is via a master pointer which exists for each moveable block. When the block is moved, the memory manager properly updates its master pointer and all handles are still valid because the master pointer has not moved. In other words, handles are pointers to pointers. A handle points to a pointer to a memory block Handles are dealt with in much the same manner as pointers. You will rarely need to dereference handles to access the pointer to the data directly.