From 492827eb82a0f7a3cacd88c82135c54a0a08825f Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Thu, 19 Jul 2012 10:01:41 +0000 Subject: DbEditorPP: changed folder structure git-svn-id: http://svn.miranda-ng.org/main/trunk@1037 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/DbEditorPP/src/modsettingenum.cpp | 88 +++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 plugins/DbEditorPP/src/modsettingenum.cpp (limited to 'plugins/DbEditorPP/src/modsettingenum.cpp') diff --git a/plugins/DbEditorPP/src/modsettingenum.cpp b/plugins/DbEditorPP/src/modsettingenum.cpp new file mode 100644 index 0000000000..7eaecdd1a0 --- /dev/null +++ b/plugins/DbEditorPP/src/modsettingenum.cpp @@ -0,0 +1,88 @@ +#include "headers.h" + +void FreeModuleSettingLL(ModuleSettingLL* msll) +{ + if (msll) + { + + struct ModSetLinkLinkItem *item = msll->first; + struct ModSetLinkLinkItem *temp; + + while (item) + { + mir_free(item->name); + temp = item; + item = (struct ModSetLinkLinkItem *)item->next; + mir_free(temp); + } + + msll->first = 0; + msll->last = 0; + } +} + +int enumModulesSettingsProc( const char *szName , DWORD ofsModuleName , LPARAM lParam) +{ + ModuleSettingLL *msll = (ModuleSettingLL *)lParam; + if (!msll->first) + { + msll->first = (struct ModSetLinkLinkItem *)mir_alloc(sizeof(struct ModSetLinkLinkItem)); + if (!msll->first) return 1; + msll->first->name = mir_tstrdup(szName); + msll->first->next = 0; + msll->last = msll->first; + } + else + { + struct ModSetLinkLinkItem *item = (struct ModSetLinkLinkItem *)mir_alloc(sizeof(struct ModSetLinkLinkItem)); + if (!item) return 1; + msll->last->next = (BYTE*)item; + msll->last = (struct ModSetLinkLinkItem *)item; + item->name = mir_tstrdup(szName); + item->next = 0; + } + return 0; +} + +int EnumModules(ModuleSettingLL *msll) // 1 = success, 0 = fail +{ + msll->first = 0; + msll->last = 0; + return !CallService(MS_DB_MODULES_ENUM, (WPARAM)msll,(WPARAM)enumModulesSettingsProc); +} + + +int enumSettingsProc(const char *szSetting,LPARAM lParam) +{ + return enumModulesSettingsProc(szSetting,0,lParam); +} + + +int EnumSettings(HANDLE hContact, char* module, ModuleSettingLL *msll) +{ + DBCONTACTENUMSETTINGS dbces; + // enum all setting the contact has for the module + dbces.pfnEnumProc = enumSettingsProc; + dbces.szModule = module; + dbces.lParam = (LPARAM)msll; + msll->first = 0; + msll->last = 0; + return !CallService(MS_DB_CONTACT_ENUMSETTINGS, (WPARAM)hContact,(LPARAM)&dbces); +} + +int CheckIfModuleIsEmptyProc(const char *szSetting,LPARAM lParam) +{ + return 1; +} + +int IsModuleEmpty(HANDLE hContact, char* szModule) +{ + DBCONTACTENUMSETTINGS dbces; + int retVal; + dbces.pfnEnumProc = CheckIfModuleIsEmptyProc; + dbces.szModule = szModule; + retVal = CallService(MS_DB_CONTACT_ENUMSETTINGS, (WPARAM)hContact,(LPARAM)&dbces); + if (retVal >= 0) + return 0; + else return 1; +} \ No newline at end of file -- cgit v1.2.3