summaryrefslogtreecommitdiff
path: root/plugins/SecureIM/src/rtfconv.cpp
blob: d76b316b2203d75a8e9bae40b2c64ae127c1887a (plain)
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
#include "commonheaders.h"

HINSTANCE hRtfconv = NULL;
RTFCONVSTRING pRtfconvString = NULL;

BOOL load_rtfconv()
{
	hRtfconv = LoadLibrary(_T("rtfconv.dll"));
	if (hRtfconv == NULL) {
		hRtfconv = LoadLibrary(_T("plugins\\rtfconv.dll"));
		if (hRtfconv == NULL)
			return FALSE;
	}

	pRtfconvString = (RTFCONVSTRING)GetProcAddress(hRtfconv, "RtfconvString");
	if (pRtfconvString == NULL) {
		FreeLibrary(hRtfconv);
		return FALSE;
	}

	return TRUE;
}

void free_rtfconv()
{
	if (hRtfconv)
		FreeLibrary(hRtfconv);
	pRtfconvString = NULL;
	hRtfconv = NULL;
}

void rtfconvA(LPCSTR rtf, LPWSTR plain)
{
	pRtfconvString(rtf, plain, 0, 1200, CONVMODE_USE_SYSTEM_TABLE, (strlen(rtf) + 1)*sizeof(WCHAR));
}

void rtfconvW(LPCWSTR rtf, LPWSTR plain)
{
	pRtfconvString(rtf, plain, 0, 1200, CONVMODE_USE_SYSTEM_TABLE, (wcslen(rtf) + 1)*sizeof(WCHAR));
}