>>375
MSDN引けば分かるが、"全てのAPIが成功時にSetLastError(0)を呼ぶわけではない"から。
基本的にAPIが失敗したときに情報を伝えるためなのがSetLastError/GetLastError。