1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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)
{
}
|