summaryrefslogtreecommitdiff
path: root/plugins/LotusNotify/src/debug.cpp
blob: 754705a8270c7a69eaefe5f626bf3b484bc734e5 (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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include "stdafx.h"
#include "debug.h"

HANDLE netlibHandle;


void logRegister(){

	// Register netlib user for logging function
	NETLIBUSER nlu = { 0 };
	nlu.cbSize = sizeof(nlu);
	nlu.flags = NUF_TCHAR | NUF_NOOPTIONS;
	nlu.szSettingsModule = PLUGINNAME;
	nlu.ptszDescriptiveName = mir_a2u(PLUGINNAME);
	netlibHandle = (HANDLE)CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nlu);

}

void logUnregister(){

	Netlib_CloseHandle(netlibHandle);
	netlibHandle = NULL;

}

void log(const wchar_t* szText){

	if (netlibHandle) {
		CallService(MS_NETLIB_LOGW, (WPARAM)netlibHandle, (LPARAM)szText);
	}

	#ifdef _DEBUG
	OutputDebugString(szText);
	#endif //_DEBUG

}

void log_p(const wchar_t* szText, ...){

	va_list args;
	va_start(args, szText);
	int len = _vscwprintf(szText, args ) + 1; // _vscprintf doesn't count terminating '\0' //!!!!!!!!!!!!!!!!
	wchar_t* buffer = new wchar_t[len * sizeof(wchar_t)];
	mir_vsntprintf(buffer, len, szText, args);
	va_end(args);
	log(buffer);
	delete buffer;

}