| 591 | // |
| 592 | |
| 593 | bool STORMAPI SFileCloseArchive(HANDLE hMpq) |
| 594 | { |
| 595 | TMPQArchive * ha = IsValidMpqHandle(hMpq); |
| 596 | bool bResult = true; |
| 597 | |
| 598 | // Only if the handle is valid |
| 599 | if(ha == NULL) |
| 600 | { |
| 601 | SetLastError(ERROR_INVALID_HANDLE); |
| 602 | return false; |
| 603 | } |
| 604 | |
| 605 | // Invalidate the add file callback so it won't be called |
| 606 | // when saving (listfile) and (attributes) |
| 607 | ha->pfnAddFileCB = NULL; |
| 608 | ha->pvAddFileUserData = NULL; |
| 609 | |
| 610 | #ifdef FULL |
| 611 | // Flush all unsaved data to the storage |
| 612 | bResult = SFileFlushArchive(hMpq); |
| 613 | #endif |
| 614 | |
| 615 | // Free all memory used by MPQ archive |
| 616 | FreeArchiveHandle(ha); |
| 617 | return bResult; |
| 618 | } |
no test coverage detected