Если есть желание, попробуйте совместить идею с ожиданием результата с многократным вызовом
Код:
sleep(5000);
if (library.IsLibraryInitialized())
{
for (i = 1; (i <= 10 && !winAPI::fileExists_RU(fileName)); i++)
{
library.UnprotectFiles(cv,false);
sleep(5000);
info(library.GetLastErrorDescription());
}
}
Подобные вещи иногда помогают при работе с Excel... он часто любит вылетать при обращении к листу и иногда такой вызов можно обложить try catch retry n times.
Возможно при вызове UnprotectFiles происходит ошибка и повторный вызов поможет?