12345678910111213141516171819202122232425262728293031 |
- #include "main.h"
- #include "api_mldb.h"
- // returns 0 on success
- // returns 1 on failure of either bad filename or invalid table
- int RemoveFileFromDB(const wchar_t *filename)
- {
- // From mldbApi
- int ret = 1;
- if (!g_table) openDb();
- if (filename && g_table)
- {
- // Issue wasabi callback for pre removal
- WASABI_API_SYSCB->syscb_issueCallback(api_mldb::SYSCALLBACK, api_mldb::MLDB_FILE_REMOVED_PRE, (size_t)filename, 0);
- EnterCriticalSection(&g_db_cs);
- nde_scanner_t s = NDE_Table_CreateScanner(g_table);
- if (NDE_Scanner_LocateFilename(s, MAINTABLE_ID_FILENAME, FIRST_RECORD, filename))
- {
- NDE_Scanner_Delete(s);
- NDE_Scanner_Post(s);
- g_table_dirty++;
- ret = 0;
- }
- NDE_Table_DestroyScanner(g_table, s);
- LeaveCriticalSection(&g_db_cs);
- // Issue wasabi callback for post removal
- WASABI_API_SYSCB->syscb_issueCallback(api_mldb::SYSCALLBACK, api_mldb::MLDB_FILE_REMOVED_POST, (size_t)filename, 0);
- }
- return ret;
- }
|