В справочнике PSDK для ILCreateFromPath нет информации о том, как работает функция в случае сбоя (и, что более важно, как получить расширенную информацию об ошибках).
ILCreateFromPath
Какое поведениея должен ожидать, и как я могу получить эту информацию об ошибке?
Это нигде не задокументировано. Если происходит сбой, он возвращает указатель NULL, и нет никакой расширенной информации об ошибке, что это происходит.
Вместо этого используйте SHParseDisplayName() (даже Microsoft говорит, что предпочтительнее ILCreateFromPath()). Возвращает HRESULT, который содержит код ошибки при ошибке.
SHParseDisplayName()
ILCreateFromPath()
HRESULT