Handles müssen nicht zwingend Pointer sein, in vielen Fällen agieren sie einfach als einzigartige IDs (wobei sich 'einzigartig' durch den Wirkungsbereich des Objektes definiert ist, so kann das Handle auf das eigene Modul, intern die ImageBase, in verschiedenen Prozessen denselben Wert haben - in diesem Fall ein Pointer auf den Beginn des Modules im Speicher, da jeder Prozess einen eigene relative/virtuelle Speicheradressierung hat, kann es zwei mal dasselbe Handle geben).

Ein unompliziertes Beispiel für eine ID ist eine Prozess- oder Thread-ID, wie (Open/Create)Process/-Thread sie zurückgeben.