summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mir_app/src/db_intf.cpp15
-rw-r--r--src/mir_app/src/mir_app.def1
-rw-r--r--src/mir_app/src/mir_app64.def1
3 files changed, 14 insertions, 3 deletions
diff --git a/src/mir_app/src/db_intf.cpp b/src/mir_app/src/db_intf.cpp
index 1a20ef4263..a4d271c367 100644
--- a/src/mir_app/src/db_intf.cpp
+++ b/src/mir_app/src/db_intf.cpp
@@ -35,12 +35,21 @@ MIR_APP_DLL(void) RegisterDatabasePlugin(DATABASELINK *pDescr)
arDbPlugins.insert(pDescr);
}
+MIR_APP_DLL(DATABASELINK*) GetDatabasePlugin(const char *pszDriverName)
+{
+ for (auto &it : arDbPlugins)
+ if (!mir_strcmp(pszDriverName, it->szShortName))
+ return it;
+
+ return nullptr;
+}
+
MIR_APP_DLL(DATABASELINK*) FindDatabasePlugin(const wchar_t *ptszFileName)
{
- for (int i = arDbPlugins.getCount() - 1; i >= 0; i--) {
- int error = arDbPlugins[i]->grokHeader(ptszFileName);
+ for (auto &it : arDbPlugins) {
+ int error = it->grokHeader(ptszFileName);
if (error == ERROR_SUCCESS || error == EGROKPRF_OBSOLETE)
- return arDbPlugins[i];
+ return it;
}
return nullptr;
diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def
index 11289c7a7e..a65d30b6a8 100644
--- a/src/mir_app/src/mir_app.def
+++ b/src/mir_app/src/mir_app.def
@@ -487,3 +487,4 @@ Image_Load @504
Image_LoadFromMem @505
Image_Resize @506
Image_Save @507
+GetDatabasePlugin @508
diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def
index d6c4787c57..2a29d7d486 100644
--- a/src/mir_app/src/mir_app64.def
+++ b/src/mir_app/src/mir_app64.def
@@ -487,3 +487,4 @@ Image_Load @504
Image_LoadFromMem @505
Image_Resize @506
Image_Save @507
+GetDatabasePlugin @508