Arquivos Win32 bloqueados para leitura: como descobrir quem está bloqueando-os

Em C ++ (especificamente no Visual C ++), às vezes você não pode abrir um arquivo porque outro executável abriu e não está compartilhando para leituras. Se eu tentar abrir esse arquivo, como posso programaticamente descobrir quem está bloqueando o arquivo?

questionAnswers(2)

yourAnswerToTheQuestion