Чем отличается PID от hInstance?

PID - уникальный идентификатор объекта ядра - процесса

Inst - (упрощенно) указатель на область памяти, куда загружен экземпляр модуля (экзешника, dll-ки)