Как говорили другие пользователи - он просто переводит целое число в «указатель на строку».
Причина этого заключается в следующем: в древние времена в Windows 3.0 люди старались быть настолько минималистичныминасколько это возможно.Предполагалось, что ресурсы в исполняемом файле могут иметь строковый идентификатор или целое число.Следовательно, когда вы пытаетесь получить доступ к такому ресурсу - вы указываете один из вышеперечисленных, и функция автоматически определяет, что вы имели в виду (проверяя, выглядит ли предоставленный «указатель» как действительный указатель).
Поскольку функцияне удалось получить «переменный тип аргумента» - они решили сделать так, чтобы он получал LPCTSTR (или аналогичный), тогда как переданный параметр фактический может быть целым числом.
Другой пример из API Windows: Aуказатель на оконную процедуру.Каждое окно имеет оконную процедуру (доступ к которой осуществляется через GetWindowLong
с флагом GWL_WNDPROC
. Однако иногда это просто целое число, которое указывает, что это за "тип" окна. Тогда есть CallWindowProc
, который знает, как различать эти случаи.