From 7fd9fe181150f166a098eaf4e006f878c28cb770 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Mon, 15 Feb 2010 05:51:01 +0300 Subject: sort --- folders.c | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 folders.c (limited to 'folders.c') diff --git a/folders.c b/folders.c new file mode 100644 index 0000000..182a2d1 --- /dev/null +++ b/folders.c @@ -0,0 +1,101 @@ +/* + +"Spam Filter"-Plugin for Miranda IM + +Copyright 2003-2006 Heiko Herkenrath + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program ("SpamFilter-License.txt"); if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + + +// -- Includes +#include "common.h" + +// -- Variables +HANDLE hDefinitionsFolder = NULL; +HANDLE hCustomFolder = NULL; + +// ----------------------------------------- + + +BOOL GetDefinitionsPath(WCHAR* pszReturn, BOOL bCustomFile, WCHAR* pszAppend) +{ + // pszReturn muss MAX_PATH groß sein + BOOL bReturn = FALSE; + + if ((bCustomFile && hCustomFolder) || (!bCustomFile && hDefinitionsFolder)) + { + FOLDERSGETDATA fgd; + + if (!pszReturn) return FALSE; + ZeroMemory(&fgd, sizeof(fgd)); + fgd.cbSize = sizeof(fgd); + fgd.nMaxPathSize = MAX_PATH; + fgd.szPathT = pszReturn; + + if (CallService(MS_FOLDERS_GET_PATH, (WPARAM)(bCustomFile?hCustomFolder:hDefinitionsFolder), (LPARAM)&fgd) == 0) + { + if (pszAppend) PathAppend(pszReturn, pszAppend); + bReturn = TRUE; + } + } + + // Custom Folder Plugin not installed (using standard folder) + if (!bReturn) + bReturn = PConstructLocalPath(pszReturn, bCustomFile?CSIDL_EXT_MIRANDAPROFILE:CSIDL_EXT_EXECUTABLE, DATA_SUBDIRECTORY, pszAppend, NULL); + + return bReturn; +} + + +BOOL IsCustomFoldersAvailable(void) +{ + return (hCustomFolder || hDefinitionsFolder); +} + + +// ------------------------------------ + + +void InitFolders(void) +{ + // Enable Custom Folder Plugin support (needs new version!) + if (ServiceExists(MS_FOLDERS_REGISTER_PATH) && ServiceExists(MS_FOLDERS_GET_PATH)) + { + FOLDERSDATA fd; + + ZeroMemory(&fd, sizeof(fd)); + fd.cbSize = sizeof(fd); + #if defined(UNICODE) + fd.flags = FF_UNICODE; + #endif + mir_snprintf(fd.szSection, ARRAYSIZE(fd.szSection), "%s", Translate("Spam Filter")); + + // Definitions Folder + mir_snprintf(fd.szName, ARRAYSIZE(fd.szName), "%s", Translate("Spam Definitions")); + fd.szFormatT = _T("%miranda_path%\\")DATA_SUBDIRECTORY; // readonly allocated + hDefinitionsFolder = (HANDLE)CallService(MS_FOLDERS_REGISTER_PATH, 0, (LPARAM)&fd); + + // Custom Definitions Folder + mir_snprintf(fd.szName, ARRAYSIZE(fd.szName), "%s", Translate("Customized Words")); + fd.szFormatT = _T("%profile_path%\\")DATA_SUBDIRECTORY; // readonly allocated + hCustomFolder = (HANDLE)CallService(MS_FOLDERS_REGISTER_PATH, 0, (LPARAM)&fd); + } +} + + +void UninitFolders(void) +{ +} \ No newline at end of file -- cgit v1.2.3