summaryrefslogtreecommitdiff
path: root/plugins/LotusNotify/src/debug.cpp
blob: 965538e7f4e7142d7b5780568b24e6d1fd429554 (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
#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_vsnwprintf(buffer, len, szText, args);
	va_end(args);
	log(buffer);
	delete[] buffer;
}