/* "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) { }