Как мы видели ранее, в 16-битных Windows
HINSTANCE идентифицировало программу. Ядро Win32 было полностью перепроектировано по сравнению с 16-битным ядром, вводя такие новые концепции как "объекты ядра" (kernel objects) и "дескрипторы безопасности" (security descriptors). В частности, 16-битная Windows не имела "идентификаторов процессов" (PID - Process ID); вместо них был описатель экземпляра (instance handle). Вот почему WinExec и ShellExecute возвращают HINSTANCE. Но в современном 32-разрядном мире HINSTANCE более не идентифицируют запущенную программу, потому что это просто базовый адрес исполняемого файла. Поскольку каждая программа имеет своё собственное адресное пространство, то эти значения далеко не уникальны в системе.