diff options
Diffstat (limited to 'Console')
| -rw-r--r-- | Console/Console.c | 1538 | ||||
| -rw-r--r-- | Console/Console.dsp | 363 | ||||
| -rw-r--r-- | Console/Console.dsw | 33 | ||||
| -rw-r--r-- | Console/Console.opt | bin | 0 -> 49664 bytes | |||
| -rw-r--r-- | Console/Console.plg | 49 | ||||
| -rw-r--r-- | Console/Console.sln | 40 | ||||
| -rw-r--r-- | Console/Console.vcproj | 634 | ||||
| -rw-r--r-- | Console/Console.vcxproj | 608 | ||||
| -rw-r--r-- | Console/Console.vcxproj.filters | 103 | ||||
| -rw-r--r-- | Console/Console_history.txt | 174 | ||||
| -rw-r--r-- | Console/Console_readme.txt | 21 | ||||
| -rw-r--r-- | Console/commonheaders.c | 24 | ||||
| -rw-r--r-- | Console/commonheaders.h | 69 | ||||
| -rw-r--r-- | Console/gpl.txt | 340 | ||||
| -rw-r--r-- | Console/init.c | 87 | ||||
| -rw-r--r-- | Console/res/arrow.ico | bin | 0 -> 422 bytes | |||
| -rw-r--r-- | Console/res/btn_dn.ico | bin | 0 -> 894 bytes | |||
| -rw-r--r-- | Console/res/btn_up.ico | bin | 0 -> 894 bytes | |||
| -rw-r--r-- | Console/res/close.ico | bin | 0 -> 894 bytes | |||
| -rw-r--r-- | Console/res/close2.ico | bin | 0 -> 894 bytes | |||
| -rw-r--r-- | Console/res/console.ico | bin | 0 -> 11502 bytes | |||
| -rw-r--r-- | Console/res/console_dn.bmp | bin | 0 -> 1014 bytes | |||
| -rw-r--r-- | Console/res/console_up.bmp | bin | 0 -> 1014 bytes | |||
| -rw-r--r-- | Console/res/copy.ico | bin | 0 -> 894 bytes | |||
| -rw-r--r-- | Console/res/delete.ico | bin | 0 -> 894 bytes | |||
| -rw-r--r-- | Console/res/empty.ico | bin | 0 -> 422 bytes | |||
| -rw-r--r-- | Console/res/in.ico | bin | 0 -> 422 bytes | |||
| -rw-r--r-- | Console/res/info.ico | bin | 0 -> 422 bytes | |||
| -rw-r--r-- | Console/res/noscroll.ico | bin | 0 -> 894 bytes | |||
| -rw-r--r-- | Console/res/options.ico | bin | 0 -> 894 bytes | |||
| -rw-r--r-- | Console/res/out.ico | bin | 0 -> 422 bytes | |||
| -rw-r--r-- | Console/res/pause.ico | bin | 0 -> 894 bytes | |||
| -rw-r--r-- | Console/res/paused.ico | bin | 0 -> 894 bytes | |||
| -rw-r--r-- | Console/res/save.ico | bin | 0 -> 894 bytes | |||
| -rw-r--r-- | Console/res/scroll.ico | bin | 0 -> 894 bytes | |||
| -rw-r--r-- | Console/res/start.ico | bin | 0 -> 894 bytes | |||
| -rw-r--r-- | Console/res/started.ico | bin | 0 -> 894 bytes | |||
| -rw-r--r-- | Console/resource.h | 58 | ||||
| -rw-r--r-- | Console/resource.rc | 223 | ||||
| -rw-r--r-- | Console/version.h | 51 | 
40 files changed, 4415 insertions, 0 deletions
diff --git a/Console/Console.c b/Console/Console.c new file mode 100644 index 0000000..7a05aed --- /dev/null +++ b/Console/Console.c @@ -0,0 +1,1538 @@ +/*
 +
 +Miranda IM: the free IM client for Microsoft* Windows*
 +
 +Copyright 2000-2008 Miranda ICQ/IM project,
 +all portions of this codebase are copyrighted to the people
 +listed in contributors.txt.
 +
 +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; if not, write to the Free Software
 +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 +*/
 +
 +#include "commonheaders.h"
 +
 +#define MS_CONSOLE_SHOW_HIDE "Console/Show/Hide"
 +
 +// console toptoolbarbutton(old) integration
 +#define TTB  1
 +
 +#define DEFAULT_WRAPLEN 90
 +#define MIN_WRAPLEN     25
 +#define MAX_WRAPLEN     255
 +
 +#define MIN_LIMIT       1000
 +#define MAX_LIMIT       1000000
 +
 +#define IMG_EMPTY       0
 +#define IMG_ARROW       1
 +#define IMG_IN          2
 +#define IMG_OUT         3
 +#define IMG_INFO        4
 +
 +#define LOGICONX_SIZE  10
 +#define LOGICONY_SIZE  10
 +
 +#define ICON_FIRST     3
 +
 +#define ICON_NOSCROLL  1
 +#define ICON_PAUSED    2
 +#define ICON_SCROLL    3
 +#define ICON_STARTED   4
 +
 +#define HM_DUMP        (WM_USER+10)
 +#define HM_ADD         (WM_USER+11)
 +#define HM_REMOVE      (WM_USER+12)
 +#define HM_SETFONT     (WM_USER+13)
 +#define HM_SETCOLOR    (WM_USER+14)
 +#define HM_PAUSEALL    (WM_USER+15)
 +#define HM_RESTART     (WM_USER+16)
 +
 +
 +typedef struct {
 +	const char* pszHead;
 +	const char* pszMsg;
 +} LOGMSG;
 +
 +
 +typedef struct {
 +	char szModule[128];
 +	TCHAR szMsg[1];
 +} DUMPMSG;
 +
 +
 +typedef struct {
 +	HWND hwnd;
 +	HANDLE hList;
 +	char *Module;
 +	int Scroll;
 +	int Paused;
 +	int newline;
 +} LOGWIN;
 +
 +
 +struct MM_INTERFACE mmi;
 +struct UTF8_INTERFACE utfi;
 +struct LIST_INTERFACE li;
 +
 +static SortedList lModules = {0};
 +
 +static LOGWIN *pActive = NULL;
 +static int tabCount = 0;
 +static RECT rcTabs = {0};
 +static HWND hTabs = NULL;
 +static HWND hwndConsole = NULL;
 +
 +static HIMAGELIST gImg = NULL;
 +static HFONT hfLogFont = NULL;
 +
 +static int gIcons = 0;
 +static int gVisible = 0;
 +static int gSingleMode = 0;
 +static int gLimit = 0;
 +static int gSeparator = 0;
 +
 +static DWORD gWrapLen = DEFAULT_WRAPLEN;
 +
 +static DWORD OutMsgs = 0;
 +static DWORD InMsgs = 0;
 +
 +static HICON hIcons[15] = {0};
 +static HANDLE hHooks[4] = {0};
 +
 +static HANDLE hTButton = 0;
 +static HANDLE hMenu = NULL;
 +
 +static void LoadSettings();
 +static void ShowConsole(int show);
 +static int ShowHideConsole(WPARAM wParam, LPARAM lParam);
 +static int Openfile(TCHAR *outputFile, int selection);
 +
 +////////////////////////////////////////////////////////////////////////////////
 +
 +#ifdef TTB
 +static HBITMAP BmpUp = NULL;
 +static HBITMAP BmpDn = NULL;
 +static HANDLE hTTBButt = 0;
 +
 +static int HideConsoleButt(WPARAM wParam,LPARAM lParam)
 +{
 +	ShowConsole(0);
 +	return 0;
 +}
 +
 +static int ShowConsoleButt(WPARAM wParam,LPARAM lParam)
 +{
 +	ShowConsole(1);
 +	return 0;
 +}
 +
 +static int OnTTBLoaded(WPARAM wParam,LPARAM lParam)
 +{
 +
 +	if (IsWindow(hwndConsole))
 +	{
 +		TTBButton ttbb = {0};
 +		int state = IsWindowVisible(hwndConsole);
 +
 +		CreateServiceFunction("Console/Hide", HideConsoleButt);
 +		CreateServiceFunction("Console/Show", ShowConsoleButt);
 +
 +		BmpUp = LoadBitmap(hInst,MAKEINTRESOURCE(IDB_CONSOLE_UP));
 +		BmpDn = LoadBitmap(hInst,MAKEINTRESOURCE(IDB_CONSOLE_DOWN));
 +
 +		ttbb.cbSize = sizeof(ttbb);
 +		ttbb.hbBitmapUp = BmpUp;
 +		ttbb.hbBitmapDown = BmpDn;
 +		ttbb.dwFlags=(state?TTBBF_PUSHED:0)|TTBBF_VISIBLE|TTBBF_SHOWTOOLTIP;
 +		ttbb.pszServiceDown = "Console/Show";
 +		ttbb.pszServiceUp = "Console/Hide";
 +		ttbb.name = Translate("Show/Hide Console");
 +		hTTBButt = (HANDLE)CallService(MS_TTB_ADDBUTTON, (WPARAM)&ttbb, 0);
 +
 +		if (hTTBButt)
 +		{
 +			CallService(MS_TTB_SETBUTTONOPTIONS,MAKEWPARAM(TTBO_TIPNAME,hTTBButt),
 +				(LPARAM)(state?Translate("Hide Console"):Translate("Show Console")));
 +
 +			CallService(MS_TTB_SETBUTTONSTATE, (WPARAM)hTTBButt, (LPARAM)(state?TTBST_PUSHED:TTBST_RELEASED));
 +		}
 +	}
 +	return 0;
 +}
 +#endif
 +
 +////////////////////////////////////////////////////////////////////////////////
 +
 +void ScrollDown(LOGWIN * dat) {
 +	if (dat->Scroll)
 +		ListView_EnsureVisible(dat->hList, ListView_GetItemCount( dat->hList ) - 1, FALSE);
 +}
 +
 +////////////////////////////////////////////////////////////////////////////////
 +
 +static void ShowConsole(int show)
 +{
 +	HWND hwnd = NULL;
 +
 +	if (!hwndConsole || !pActive) return;
 +
 +	gVisible = show;
 +
 +	if (show) {
 +		hwnd = GetForegroundWindow();
 +		if ( InMsgs == OutMsgs )
 +			ScrollDown( pActive );
 +	}
 +	ShowWindow(hwndConsole, (show)?SW_SHOW:SW_HIDE);
 +	DBWriteContactSettingByte(NULL,"Console","Show",(BYTE)((show)?1:0));
 +
 +	if (hwnd)
 +		SetForegroundWindow(hwnd);
 +
 +	if (show)
 +		RedrawWindow(pActive->hList, NULL, NULL, RDW_INVALIDATE | RDW_FRAME |RDW_UPDATENOW | RDW_ERASE);
 +
 +	if (hMenu)
 +	{
 +		CLISTMENUITEM mi = {0};
 +
 +		mi.cbSize = sizeof(mi);
 +		mi.ptszName=(show)?TranslateT("Hide Console"):TranslateT("Show Console");
 +		mi.flags = CMIM_NAME | CMIF_TCHAR;;
 +		CallService(MS_CLIST_MODIFYMENUITEM, (WPARAM)hMenu, (LPARAM)&mi);
 +	}
 +
 +	if (hTButton)
 +	{
 +		CallService(MS_TB_SETBUTTONSTATEBYID, (WPARAM)"console_btn", (show)?TBST_PUSHED:TBST_RELEASED);
 +	}
 +
 +#ifdef TTB
 +	if (hTTBButt)
 +	{
 +		CallService(MS_TTB_SETBUTTONSTATE, (WPARAM)hTTBButt, (show)?TTBST_PUSHED:TTBST_RELEASED);
 +		CallService(MS_TTB_SETBUTTONOPTIONS,MAKEWPARAM(TTBO_TIPNAME,hTTBButt),
 +			(LPARAM)(show?Translate("Hide Console"):Translate("Show Console")));
 +	}
 +#endif
 +}
 +
 +////////////////////////////////////////////////////////////////////////////////
 +
 +static int ShowHideConsole(WPARAM wParam, LPARAM lParam)
 +{
 +	if (hwndConsole)
 +		ShowConsole(!IsWindowVisible(hwndConsole));
 +
 +	return 0;
 +}
 +
 +////////////////////////////////////////////////////////////////////////////////
 +
 +int LogResize(HWND hwnd,LPARAM lParam,UTILRESIZECONTROL *urc)
 +{
 +	switch(urc->wId) {
 +	case IDC_LIST:
 +		ListView_SetColumnWidth(GetDlgItem(hwnd, IDC_LIST), 0, urc->dlgNewSize.cx - 25);
 +		return RD_ANCHORX_WIDTH|RD_ANCHORY_HEIGHT;
 +	case IDC_STARTALL:
 +	case IDC_PAUSEALL:
 +	case IDC_CLOSE:
 +		return RD_ANCHORX_RIGHT|RD_ANCHORY_TOP;
 +	default:
 +		return RD_ANCHORX_LEFT|RD_ANCHORY_TOP;
 +	}
 +}
 +
 +////////////////////////////////////////////////////////////////////////////////
 +
 +typedef struct
 +{
 +	UINT control;
 +	UINT icon;
 +	int  type;
 +	TCHAR *tooltip;
 +} controlinfo;
 +
 +
 +static controlinfo ctrls[] =
 +{
 +	// IDC_SCROLL & IDC_PAUSE must be first
 +	{IDC_SCROLL, IDI_SCROLL, BUTTONSETASFLATBTN, _T("Scrolling (Ctrl+Q)")},
 +	{IDC_PAUSE, IDI_STARTED, BUTTONSETASFLATBTN, _T("Pause logging(Ctrl+P)")},
 +	{IDC_SAVE, IDI_SAVE, BUTTONSETASFLATBTN, _T("Save log to file (Ctrl+S)")},
 +	{IDC_COPY, IDI_COPY, BUTTONSETASFLATBTN, _T("Copy selected log (Ctrl+C)")},
 +	{IDC_DELETE, IDI_DELETE, BUTTONSETASFLATBTN, _T("Delete selected (Del)")},
 +	{IDC_OPTIONS, IDI_OPTIONS, BUTTONSETASFLATBTN, _T("Log options (Ctrl+O)")},
 +	{IDC_STARTALL, IDI_START, BUTTONSETASFLATBTN, _T("Start logging in all tabs")},
 +	{IDC_PAUSEALL, IDI_PAUSE, BUTTONSETASFLATBTN, _T("Pause logging in all tabs")},
 +	{IDC_CLOSE, IDI_CLOSE, BUTTONSETASFLATBTN, _T("Close tab (Ctrl+W)")},
 +};
 +
 +////////////////////////////////////////////////////////////////////////////////
 +
 +static LRESULT CALLBACK SubclassProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
 +{
 +	int ctrl = GetKeyState(VK_CONTROL)&0x8000;
 +
 +	switch (msg) {
 +
 +		case WM_KEYDOWN:
 +			if ( wParam == VK_DELETE && !ctrl) {
 +				SendMessage(GetParent(hwnd), WM_COMMAND, IDC_DELETE, 0);
 +				break;
 +			}
 +
 +			if (wParam == VK_LEFT && ctrl)
 +			{
 +			    NMHDR nmhdr = {0};
 +   				int tab = TabCtrl_GetCurSel(hTabs);
 +
 +				if (tab == 0)
 +					tab = TabCtrl_GetItemCount(hTabs)-1;
 +				else
 +					tab--;
 +
 +				TabCtrl_SetCurSel(hTabs, tab);
 +			    nmhdr.code = TCN_SELCHANGE;
 +			    SendMessage(hwndConsole, WM_NOTIFY, IDC_TABS, (LPARAM)&nmhdr);
 +				break;
 +			}
 +
 +			if (wParam == VK_RIGHT && ctrl)
 +			{
 +				NMHDR nmhdr = {0};
 +				int tab = TabCtrl_GetCurSel(hTabs);
 +				int count =  TabCtrl_GetItemCount(hTabs);
 +				tab = (tab + 1) % count;
 +
 +				TabCtrl_SetCurSel(hTabs, tab);
 +				nmhdr.code = TCN_SELCHANGE;
 +				SendMessage(hwndConsole, WM_NOTIFY, IDC_TABS, (LPARAM)&nmhdr);
 +				break;
 +			}
 +
 +			break;
 +
 +		case WM_CHAR:
 +/*
 +			{
 +				char t[32];
 +				sprintf(t,"%u\n",wParam);
 +				OutputDebugStringA(t);
 +			}
 +*/
 +			// CTRL
 +			if ( !(GetKeyState(VK_CONTROL)&0x8000) )
 +				break;
 +
 +			switch(wParam) {
 +
 +				case 1:	// Ctrl+A
 +	   				if ( ListView_GetSelectedCount(hwnd) != (UINT)ListView_GetItemCount(hwnd) )
 +						ListView_SetItemState(hwnd, -1, LVIS_SELECTED, LVIS_SELECTED);
 +					return 0;
 +
 +				case 3: // Ctrl+D
 +					SendMessage(GetParent(hwnd), WM_COMMAND, IDC_COPY, 0);
 +					return 0;
 +
 +				case 15: // Ctrl+O
 +					SendMessage(GetParent(hwnd), WM_COMMAND, IDC_OPTIONS, 0);
 +					return 0;
 +
 +				case 16: // Ctrl+P
 +					SendMessage(GetParent(hwnd), WM_COMMAND, IDC_PAUSE, 0);
 +					return 0;
 +
 +				case 17: // Ctrl+Q
 +					SendMessage(GetParent(hwnd), WM_COMMAND, IDC_SCROLL, 0);
 +					return 0;
 +
 +				case 19: // Ctrl+S
 +					SendMessage(GetParent(hwnd), WM_COMMAND, IDC_SAVE, 0);
 +					return 0;
 +
 +				case 23: // Ctrl+W
 +					SendMessage(GetParent(hwnd), WM_COMMAND, IDC_CLOSE, 0);
 +					return 0;
 +			}
 +			break;
 +   	}
 +	return CallWindowProc((WNDPROC)GetWindowLong(hwnd, GWLP_USERDATA),hwnd,msg,wParam,lParam);
 +}
 +
 +////////////////////////////////////////////////////////////////////////////////
 +
 +static BOOL CALLBACK LogDlgProc(HWND hwndDlg,UINT message,WPARAM wParam,LPARAM lParam)
 +{
 +
 +	LOGWIN *dat = (LOGWIN*)GetWindowLong(hwndDlg, GWLP_USERDATA);
 +
 +	switch(message) {
 +	case WM_INITDIALOG:
 +	{
 +		dat = (LOGWIN*)lParam;
 +
 +		dat->hwnd = hwndDlg;
 +		dat->Scroll = 1;
 +		dat->Paused = 0;
 +		dat->hList = GetDlgItem(hwndDlg, IDC_LIST);
 +
 +		SetWindowLong(hwndDlg, GWLP_USERDATA, (LONG)dat);
 +		SetWindowLong(dat->hList, GWLP_USERDATA, SetWindowLong(dat->hList,GWLP_WNDPROC,(LONG)SubclassProc));
 +
 +		// init buttons
 +		{
 +			int i;
 +			HWND hwnd;
 +			for(i = 0; i < SIZEOF(ctrls); i++) {
 +				hwnd = GetDlgItem(hwndDlg,ctrls[i].control);
 +				SendMessage(hwnd, ctrls[i].type, 0, 0);
 +				SendMessage(hwnd, BUTTONADDTOOLTIP,(WPARAM)TranslateTS(ctrls[i].tooltip), BATF_TCHAR);
 +				SendMessage(hwnd, BM_SETIMAGE,IMAGE_ICON,(LPARAM)hIcons[i+ICON_FIRST]);
 +			}
 +		}
 +
 +		CheckDlgButton(hwndDlg,IDC_SCROLL,dat->Scroll?BST_CHECKED:BST_UNCHECKED);
 +		SendDlgItemMessage(hwndDlg,IDC_SCROLL,BM_SETIMAGE,IMAGE_ICON,(LPARAM)hIcons[(dat->Scroll?ICON_SCROLL:ICON_NOSCROLL)]);
 +
 +		if (gSingleMode)
 +		{
 +			ShowWindow(GetDlgItem(hwndDlg, IDC_PAUSEALL), SW_HIDE);
 +			ShowWindow(GetDlgItem(hwndDlg, IDC_STARTALL), SW_HIDE);
 +			ShowWindow(GetDlgItem(hwndDlg, IDC_CLOSE), SW_HIDE);
 +		}
 +
 +		// init listview
 +		{
 +			LVITEM lvi = {0};
 +			LVCOLUMN sLC;
 +			//ListView_SetUnicodeFormat(dat->hList, FALSE);
 +			ListView_SetImageList(dat->hList, gImg, LVSIL_SMALL);
 +			sLC.mask = LVCF_FMT | LVCF_WIDTH;
 +			sLC.fmt = LVCFMT_LEFT;
 +			sLC.cx = 630;
 +			ListView_InsertColumn(dat->hList,0,&sLC);
 +			ListView_SetExtendedListViewStyle(dat->hList, LVS_EX_FULLROWSELECT);
 +
 +			lvi.mask = LVIF_TEXT;
 +			if (gIcons)
 +			{
 +				lvi.mask |= LVIF_IMAGE;
 +				lvi.iImage = IMG_INFO;
 +			}
 +
 +			lvi.pszText = TranslateT("*** Console started ***");
 +			ListView_InsertItem(dat->hList,&lvi);
 +		}
 +
 +		SendMessage(hwndDlg, WM_SIZE, 0, 0);
 +		break;
 +	}
 +	case HM_DUMP:
 +	{
 +		// lParam = DUMPMSG
 +		if (!lParam) break;
 +		if (dat && !dat->Paused)
 +		{
 +			LVITEM lvi = {0};
 +			int last = 0x7fffffff;
 +			TCHAR szBreak;
 +			DWORD len, tmplen;
 +			DWORD wraplen = gWrapLen;
 +			TCHAR *str = ((DUMPMSG*)lParam)->szMsg;
 +
 +			lvi.iItem = 0x7fffffff;
 +
 +			str = _tcstok(str, _T("\n"));
 +
 +			if (gIcons && str != NULL)
 +			{
 +				lvi.mask = LVIF_TEXT | LVIF_IMAGE;
 +
 +				if (_tcsstr(str, _T("Data received")))
 +				{
 +					if (gSeparator) ListView_InsertItem(dat->hList, &lvi);
 +					lvi.iImage = IMG_IN;
 +				}
 +				else
 +				if (_tcsstr(str, _T("Data sent")))
 +				{
 +					if (gSeparator) ListView_InsertItem(dat->hList, &lvi);
 +					lvi.iImage = IMG_OUT;
 +				}
 +				else
 +				{
 +					if (gSeparator && dat->newline)
 +					{
 +						ListView_InsertItem(dat->hList, &lvi);
 +						dat->newline = 0;
 +					}
 +					lvi.iImage = IMG_INFO;
 +				}
 +			} else
 +				lvi.mask = LVIF_TEXT;
 +
 +			while (str != NULL)
 +			{
 +				lvi.pszText = &str[0];
 +				tmplen = len = _tcslen(lvi.pszText);
 +
 +				while(len > wraplen)
 +				{
 +					szBreak = lvi.pszText[wraplen];
 +					lvi.pszText[wraplen] = 0;
 +					last = ListView_InsertItem(dat->hList, &lvi);
 +					lvi.pszText[wraplen] = szBreak;
 +					len -= wraplen;
 +					lvi.pszText = &str[0] + tmplen - len;
 +
 +					dat->newline = 1;
 +					lvi.iImage = IMG_EMPTY;
 +				}
 +
 +				if (len && lvi.pszText[len-1] == '\r')
 +					lvi.pszText[len-1] = 0;
 +
 +				last = ListView_InsertItem(dat->hList, &lvi);
 +
 +				str = _tcstok(NULL, _T("\n"));
 +
 +				if (str) dat->newline = 1;
 +				lvi.iImage = IMG_EMPTY;
 +			}
 +
 +
 +			if ( gVisible && dat == pActive && dat->Scroll == 1 )
 +				ListView_EnsureVisible(dat->hList, last, FALSE);
 +
 +			if (last > gLimit)
 +			{
 +				int idx = last - gLimit + gLimit/4; // leave only 75% of LIMIT
 +
 +				while (idx >= 0)
 +				{
 +					ListView_DeleteItem(dat->hList, idx);
 +					idx--;
 +				}
 +			}
 +		}
 +
 +		free((DUMPMSG*)lParam);
 +		return TRUE;
 +	}
 +	case WM_SIZE:
 +	{
 +		UTILRESIZEDIALOG urd={0};
 +		urd.cbSize=sizeof(urd);
 +		urd.hInstance=hInst;
 +		urd.hwndDlg=hwndDlg;
 +		urd.lpTemplate=MAKEINTRESOURCEA(IDD_LOG);
 +		urd.pfnResizer=LogResize;
 +		SetWindowPos(hwndDlg, HWND_TOP, rcTabs.left, rcTabs.top, rcTabs.right - rcTabs.left, rcTabs.bottom - rcTabs.top, SWP_SHOWWINDOW);
 +		CallService(MS_UTILS_RESIZEDIALOG,0,(LPARAM)&urd);
 +		break;
 +	}
 +	case WM_COMMAND:
 +	{
 +		switch(LOWORD(wParam))
 +		{
 +			if (!dat) break;
 +
 +			case IDC_PAUSE:
 +			{
 +				LVITEM lvi = {0};
 +				dat->Paused = !(dat->Paused);
 +				lvi.mask = LVIF_TEXT | LVIF_IMAGE;
 +				lvi.iImage = IMG_INFO;
 +				lvi.iItem = 0x7FFFFFFF;
 +				lvi.pszText = (dat->Paused) ? TranslateT("*** Console paused ***") : TranslateT("*** Console resumed ***");
 +				ListView_InsertItem(dat->hList,&lvi);
 +				CheckDlgButton(hwndDlg,IDC_PAUSE,(dat->Paused)?BST_CHECKED:BST_UNCHECKED);
 +				SendDlgItemMessage(hwndDlg,IDC_PAUSE,BM_SETIMAGE,IMAGE_ICON,(LPARAM)hIcons[((dat->Paused)?ICON_PAUSED:ICON_STARTED)]);
 +				break;
 +			}
 +			case IDC_SCROLL:
 +			{
 +				dat->Scroll = !(dat->Scroll);
 +				CheckDlgButton(hwndDlg,IDC_SCROLL,(dat->Scroll)?BST_CHECKED:BST_UNCHECKED);
 +				SendDlgItemMessage(hwndDlg,IDC_SCROLL,BM_SETIMAGE,IMAGE_ICON,(LPARAM)hIcons[((dat->Scroll)?ICON_SCROLL:ICON_NOSCROLL)]);
 +				break;
 +			}
 +			case IDC_COPY:
 +			{
 +				int idx = 0;
 +				TCHAR szText[128];
 +				TCHAR *src, *dst, *buf;
 +				int flags = LVNI_BELOW;
 +				int count = ListView_GetSelectedCount(dat->hList);
 +
 +				if (count)
 +					flags |= LVNI_SELECTED;
 +				else
 +					count = ListView_GetItemCount(dat->hList);
 +
 +				dst = buf = malloc((count*(sizeof(szText)+1)+1)*sizeof(TCHAR));
 +				if (!buf) break;
 +
 +				while ((idx = ListView_GetNextItem(dat->hList,idx,flags)) > 0)
 +				{
 +					ListView_GetItemText(dat->hList, idx, 0, szText, sizeof(szText)-1);
 +					src = szText;
 +					while (*dst++ = *src++);
 +					dst--;
 +					*dst++ = '\r';
 +					*dst++ = '\n';
 +					*dst = 0;
 +				}
 +
 +				if (dst - buf > 0 && OpenClipboard(hwndDlg)) {
 +					HGLOBAL hClipboardData;
 +					TCHAR* pchData;
 +					EmptyClipboard();
 +					if (hClipboardData = GlobalAlloc(GMEM_DDESHARE, (dst-buf+1)*sizeof(TCHAR))) {
 +						pchData = (TCHAR*)GlobalLock(hClipboardData);
 +						_tcscpy(pchData, buf);
 +						GlobalUnlock(hClipboardData);
 +						#ifdef UNICODE
 +							SetClipboardData(CF_UNICODETEXT,hClipboardData);
 +						#else
 +							SetClipboardData(CF_TEXT,hClipboardData);
 +						#endif
 +					}
 +					CloseClipboard();
 +				}
 +				free(buf);
 +				break;
 +			}
 +			case IDC_DELETE:
 +			{
 +				int idx = 0;
 +				int count = ListView_GetSelectedCount(dat->hList);
 +
 +				if ( !count ) break;
 +
 +				if ( count == ListView_GetItemCount(dat->hList) ) {
 +					LVITEM lvi = {0};
 +					ListView_DeleteAllItems(dat->hList);
 +					lvi.mask = LVIF_TEXT | LVIF_IMAGE;
 +					lvi.iImage = IMG_INFO;
 +					lvi.pszText = TranslateT("*** Console cleared ***");
 +					ListView_InsertItem(dat->hList,&lvi);
 +					dat->newline = 0;
 +					break;
 +				}
 +
 +				while ((idx = ListView_GetNextItem(dat->hList,idx,LVNI_BELOW|LVNI_SELECTED)) > 0)
 +				{
 +					ListView_DeleteItem(dat->hList,idx);
 +					idx--;
 +				}
 +				break;
 +			}
 +			case IDC_SAVE:
 +			{
 +				FILE *fp;
 +				TCHAR szFile[MAX_PATH];
 +
 +				if (!Openfile(szFile,ListView_GetSelectedCount(dat->hList))) break;
 +
 +				fp = _tfopen(szFile, _T("wt"));
 +				if (fp) {
 +					int idx = 0;
 +					TCHAR szText[128];
 +					int flags = LVNI_BELOW;
 +					if (ListView_GetSelectedCount(dat->hList))
 +						flags |= LVNI_SELECTED;
 +
 +					while ((idx = ListView_GetNextItem(dat->hList,idx,flags)) > 0)
 +					{
 +						ListView_GetItemText(dat->hList, idx, 0, szText, sizeof(szText)-1);
 +						_ftprintf(fp, _T("%s\n"), szText);
 +					}
 +   					fclose(fp);
 +				}
 +				break;
 +			}
 +			case IDC_OPTIONS:
 +				CallServiceSync(MS_NETLIB_LOGWIN,0,0);
 +				break;
 +			case IDC_STARTALL:
 +				SendMessage(hwndConsole, HM_PAUSEALL, 0, 0);
 +				break;
 +			case IDC_PAUSEALL:
 +				SendMessage(hwndConsole, HM_PAUSEALL, 0, 1);
 +				break;
 +			case IDC_CLOSE:
 +				if (tabCount > 1)
 +					SendMessage(hwndDlg, WM_CLOSE, 0, 0);
 +				break;
 +			default:
 +				break;
 +		}
 +		break;
 +	}
 +	case WM_CLOSE:
 +		DestroyWindow(hwndDlg);
 +		break;
 +	case WM_DESTROY:
 +		SetWindowLong(dat->hList, GWLP_WNDPROC, GetWindowLong(dat->hList,GWLP_USERDATA));
 +		SendMessage(hwndConsole, HM_REMOVE, 0, (LPARAM)dat);
 +		break;
 +	}
 +
 +	return FALSE;
 +}
 +
 +
 +////////////////////////////////////////////////////////////////////////////////
 +
 +int ConsoleResize(HWND hwnd,LPARAM lParam,UTILRESIZECONTROL *urc)
 +{
 +	switch(urc->wId) {
 +	case IDC_TABS:
 +		return RD_ANCHORX_WIDTH|RD_ANCHORY_HEIGHT;
 +	default:
 +		return RD_ANCHORX_LEFT|RD_ANCHORY_TOP;
 +	}
 +}
 +
 +
 +static BOOL CALLBACK ConsoleDlgProc(HWND hwndDlg,UINT message,WPARAM wParam,LPARAM lParam)
 +{
 +	switch(message) {
 +	case WM_INITDIALOG:
 +	{
 +		char Title[512];
 +		char ProfileName[513];
 +		char ProfilePath[513];
 +		ProfileName[512] = 0;
 +		ProfilePath[512] = 0;
 +
 +		hTabs = GetDlgItem(hwndDlg, IDC_TABS);
 +		//TabCtrl_SetMinTabWidth(hTabs, 100);
 +
 +		// restore position
 +		{
 +			SAVEWINDOWPOS swp;
 +			swp.hwnd=hwndDlg; swp.hContact=NULL; swp.szModule="Console"; swp.szNamePrefix="Console";
 +			CallService(MS_UTILS_RESTOREWINDOWPOSITION,RWPF_NOACTIVATE,(LPARAM)&swp);
 +			ShowWindow(hwndDlg,SW_HIDE);
 +		}
 +
 +		if (CallService(MS_DB_GETPROFILENAME,(WPARAM)512,(LPARAM)ProfileName))
 +			ProfileName[0] = 0;
 +
 +		if (CallService(MS_DB_GETPROFILEPATH,(WPARAM)512,(LPARAM)ProfilePath))
 +			ProfilePath[0] = 0;
 +
 +		mir_snprintf(Title, sizeof(Title), "%s - %s\\%s", Translate("Miranda Console"), ProfilePath, ProfileName);
 +
 +		SetWindowTextA(hwndDlg, Title);
 +		SendMessage(hwndDlg,WM_SETICON,ICON_BIG,(LPARAM)hIcons[0]);
 +
 +		hwndConsole = hwndDlg;
 +		SendMessage(hwndDlg, HM_ADD, 0, 0);
 +		PostMessage(hwndDlg, WM_SIZE, 0, 0);
 +		break;
 +	}
 +	case HM_DUMP:
 +	{
 +		// lParam = DUMPMSG
 +		int idx;
 +		LOGWIN *lw;
 +		LOGWIN lw2;
 +		DUMPMSG *dumpMsg = (DUMPMSG*)lParam;
 +
 +		if (!pActive) break;
 +
 +		if (!gSingleMode)
 +		{
 +			lw2.Module = dumpMsg->szModule;
 +			if (!li.List_GetIndex(&lModules, &lw2, &idx))
 +				SendMessage(hwndDlg, HM_ADD, (WPARAM)idx, (LPARAM)dumpMsg->szModule);
 +
 +			lw = (LOGWIN*)lModules.items[idx];
 +		}
 +		else
 +			lw = pActive;
 +
 +		if (lw->hwnd)
 +			SendMessage(lw->hwnd, HM_DUMP, wParam, lParam);
 +		else
 +			PostMessage(hwndDlg, HM_DUMP, wParam, lParam); // loop msg until window will be ready
 +
 +		return TRUE;
 +	}
 +	case HM_ADD:
 +	{
 +		// wParam = index, lParam = module name
 +		LOGWIN *lw;
 +		COLORREF col;
 +		TCITEM tci = {0};
 +		int idx = (int)wParam;
 +		char *str = (char*)lParam;
 +
 +		if (!str) str = ""; // startup window
 +
 +		lw = (LOGWIN*)mir_calloc( sizeof(LOGWIN) );
 +		lw->Module = (char*)mir_strdup(str);
 +		li.List_Insert(&lModules, lw, idx);
 +
 +		if (!gSingleMode && lParam)
 +		{
 +			tci.mask = TCIF_PARAM | TCIF_TEXT;
 +			tci.lParam = (LPARAM)lw;
 +#ifdef _UNICODE
 +			tci.pszText = mir_a2u(lw->Module);
 +			idx = TabCtrl_InsertItem(hTabs, tabCount, &tci);
 +			mir_free(tci.pszText);
 +#else
 +			tci.pszText = lw->Module;
 +			idx = TabCtrl_InsertItem(hTabs, tabCount, &tci);
 +#endif
 +			tabCount++;
 +		}
 +
 +		GetClientRect(hTabs, &rcTabs);
 +		TabCtrl_AdjustRect(hTabs, FALSE, &rcTabs);
 +
 +		CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_LOG), hwndDlg, LogDlgProc, (LPARAM)lw);
 +		ShowWindow(lw->hwnd, (tabCount > 1)?SW_HIDE:SW_SHOWNOACTIVATE);
 +
 +		if (pActive)
 +		{
 +			col = ListView_GetBkColor(pActive->hList);
 +			ListView_SetBkColor(lw->hList, col);
 +			ListView_SetTextBkColor(lw->hList, col);
 +
 +			col = ListView_GetTextColor(pActive->hList);
 +			ListView_SetTextColor(lw->hList, col);
 +
 +			if (hfLogFont)
 +				SendMessage(lw->hList, WM_SETFONT, (WPARAM)hfLogFont, (LPARAM)TRUE);
 +		}
 +
 +		// hide startup window
 +		if (tabCount == 1)
 +		{
 +			ShowWindow(pActive->hwnd, SW_HIDE);
 +			PostMessage(pActive->hwnd, WM_CLOSE, 0, 0);
 +			pActive = lw;
 +		}
 +
 +		if (!pActive)
 +			pActive = lw;
 +
 +		return TRUE;
 +	}
 +	case HM_REMOVE:
 +	{
 +		// lParam = LOGWIN
 +		LOGWIN *lw = (LOGWIN*)lParam;
 +
 +		if (!lw) break;
 +
 +		if (lw == pActive)
 +		{
 +			int tab = TabCtrl_GetCurSel(hTabs);
 +			if (tab >= 0)
 +			{
 +				TCITEM tci={0};
 +
 +				TabCtrl_DeleteItem(hTabs, tab);
 +				tabCount--;
 +				if (tabCount)
 +				{
 +					tab--;
 +					if (tab < 0 ) tab = 0;
 +					TabCtrl_SetCurSel(hTabs, tab);
 +
 +					tci.mask = TCIF_PARAM;
 +					TabCtrl_GetItem(hTabs, tab, &tci);
 +					pActive = (LOGWIN*)tci.lParam;
 +					SendMessage(pActive->hwnd, WM_SIZE, 0, 0);
 +					ScrollDown(pActive);
 +					ShowWindow(pActive->hwnd, SW_SHOWNOACTIVATE);
 +					SetFocus(pActive->hList);
 +				}
 +				else
 +					pActive = NULL;
 +			}
 +		}
 +
 +		li.List_RemovePtr(&lModules, lw);
 +		mir_free(lw->Module);
 +		mir_free(lw);
 +		return TRUE;
 +	}
 +	case HM_SETFONT:
 +	{
 +		// wParam = font, lParam = font color
 +		int i;
 +		LOGWIN *lw;
 +		for ( i = 0; i < lModules.realCount; i++ )
 +		{
 +			lw = (LOGWIN*)lModules.items[i];
 +			ListView_SetTextColor(lw->hList, (COLORREF)lParam);
 +			if (wParam)
 +				SendMessage(lw->hList, WM_SETFONT, wParam, (LPARAM)TRUE);
 +		}
 +		return TRUE;
 +	}
 +	case HM_SETCOLOR:
 +	{
 +		// wParam = font, lParam = background color
 +		int i;
 +		LOGWIN *lw;
 +		for ( i = 0; i < lModules.realCount; i++ )
 +		{
 +			lw = (LOGWIN*)lModules.items[i];
 +			ListView_SetBkColor(lw->hList, (COLORREF)lParam);
 +			ListView_SetTextBkColor(lw->hList, (COLORREF)lParam);
 +			if (wParam)
 +				SendMessage(lw->hList, WM_SETFONT, wParam, (LPARAM)TRUE);
 +		}
 +		return TRUE;
 +	}
 +	case HM_PAUSEALL:
 +	{
 +		// lParam = 1 to pause, 0 to start
 +		int i;
 +		LOGWIN *lw;
 +		for ( i = 0; i < lModules.realCount; i++ )
 +		{
 +			lw = (LOGWIN*)lModules.items[i];
 +			if (lw->Paused != (int)lParam)
 +				SendMessage(lw->hwnd, WM_COMMAND, IDC_PAUSE, 0);
 +		}
 +		return TRUE;
 +	}
 +	case HM_RESTART:
 +	{
 +		if (pActive)
 +		{
 +			pActive = NULL;
 +			PostMessage(hwndDlg, HM_RESTART, 0, 0);
 +			return TRUE;
 +		}
 +		// close all tabs
 +		if (!lParam)
 +		{
 +			LOGWIN *lw;
 +			TabCtrl_DeleteAllItems(hTabs);
 +			while ( lModules.realCount )
 +			{
 +				lw = (LOGWIN*)lModules.items[0];
 +				SendMessage(lw->hwnd, WM_CLOSE, 0, 0);
 +			}
 +			tabCount = 0;
 +			PostMessage(hwndDlg, HM_RESTART, 0, 1);
 +			return TRUE;
 +		}
 +
 +		LoadSettings();
 +		SendMessage(hwndDlg, HM_ADD, 0, 0);
 +		PostMessage(hwndDlg, WM_SIZE, 0, 0);
 +		return TRUE;
 +	}
 + 	case WM_SETFOCUS:
 +		if ( pActive ) {
 +			SetFocus(pActive->hList);
 +		}
 +		return TRUE;
 +	case WM_NOTIFY:
 +		switch(wParam) {
 +		case IDC_TABS:
 +			{
 +				LPNMHDR lpnmhdr = (LPNMHDR)lParam;
 +				if (lpnmhdr->code == TCN_SELCHANGE)
 +				{
 +					int newTab = TabCtrl_GetCurSel(hTabs);
 +					if (newTab >= 0 )
 +					{
 +						TCITEM tci={0};
 +						HWND hOld = pActive->hwnd;
 +
 +						tci.mask = TCIF_PARAM;
 +
 +						if (!TabCtrl_GetItem(hTabs, newTab, &tci)) break;
 +
 +						pActive = (LOGWIN*)tci.lParam;
 +
 +						SendMessage(pActive->hwnd, WM_SIZE, 0, 0);
 +						ScrollDown(pActive);
 +						ShowWindow(hOld, SW_HIDE);
 +						ShowWindow(pActive->hwnd, SW_SHOWNOACTIVATE);
 +						SetFocus(pActive->hList);
 +					} else
 +						SendMessage(pActive->hwnd, WM_SIZE, 0, 0);
 +				}
 +				break;
 +			}
 +		}
 +		break;
 +	case WM_SIZE:
 +	{
 +		UTILRESIZEDIALOG urd={0};
 +		urd.cbSize=sizeof(urd);
 +		urd.hInstance=hInst;
 +		urd.hwndDlg=hwndDlg;
 +		urd.lpTemplate=MAKEINTRESOURCEA(IDD_CONSOLE);
 +		urd.pfnResizer=ConsoleResize;
 +		CallService(MS_UTILS_RESIZEDIALOG,0,(LPARAM)&urd);
 +
 +		GetClientRect(hTabs, &rcTabs);
 +		TabCtrl_AdjustRect(hTabs, FALSE, &rcTabs);
 +
 +		if ( pActive )
 +			SendMessage(pActive->hwnd, WM_SIZE, 0, 0);
 +		break;
 +	}
 +	case WM_GETMINMAXINFO:
 +	{
 +		MINMAXINFO *mmi=(MINMAXINFO*)lParam;
 +		mmi->ptMinTrackSize.x=400;
 +		mmi->ptMinTrackSize.y=200;
 +		break;
 +	}
 +	case WM_CLOSE:
 +		if ( lParam != 1 ) {
 +			Utils_SaveWindowPosition(hwndDlg,NULL,"Console","Console");
 +			ShowConsole(0);
 +			return TRUE;
 +		} else
 +			DestroyWindow(hwndDlg);
 +		break;
 +	case WM_DESTROY:
 +		pActive = NULL;
 +		if (hfLogFont) DeleteObject(hfLogFont);
 +		PostQuitMessage(0);
 +		break;
 +	}
 +
 +	return FALSE;
 +}
 +
 +
 +////////////////////////////////////////////////////////////////////////////////
 +
 +
 +void __cdecl ConsoleThread(void* arg)
 +{
 +	MSG msg;
 +	HWND hwnd;
 +
 +	hwnd = CreateDialog(hInst,MAKEINTRESOURCE(IDD_CONSOLE),NULL,ConsoleDlgProc);
 +
 +	if (!hwnd) return;
 +
 +	while( GetMessage(&msg, NULL, 0, 0) > 0 )
 +	{
 +		switch(msg.message) {
 +		case HM_DUMP:
 +			OutMsgs++;
 +			break;
 +		}
 +
 +		if ( IsDialogMessage(hwnd, &msg) )
 +			continue;
 +
 +		TranslateMessage(&msg);
 +		DispatchMessage(&msg);
 +	}
 +
 +	hwndConsole = NULL;
 +}
 +
 +///////////////////////////////////////////////////////////////////////////////
 +
 +static int OnFastDump(WPARAM wParam,LPARAM lParam)
 +{
 +	if ( pActive )
 +	{
 +		LOGMSG *logMsg = (LOGMSG*)lParam;
 +		DWORD headlen = strlen(logMsg->pszHead);
 +		DWORD msglen = strlen(logMsg->pszMsg);
 +		DWORD len = (headlen + msglen + 1) * sizeof(TCHAR) + sizeof(DUMPMSG);
 +		DUMPMSG *dumpMsg = (DUMPMSG*)malloc( len );
 +		TCHAR *str = dumpMsg->szMsg;
 +
 +		strncpy(dumpMsg->szModule, ((NETLIBUSER*)wParam)->szDescriptiveName, sizeof(dumpMsg->szModule))[ sizeof(dumpMsg->szModule)-1 ] = 0;
 +
 +#ifdef _UNICODE
 +		{
 +			wchar_t *ucs2;
 +
 +			ucs2 = mir_a2u( logMsg->pszHead );
 +			wcscpy(str, ucs2);
 +			mir_free(ucs2);
 +
 +			// try to detect utf8
 +			ucs2 = mir_utf8decodeW( logMsg->pszMsg );
 +			if ( !ucs2 )
 +				ucs2 = mir_a2u( logMsg->pszMsg );
 +
 +			wcscat( str, ucs2 );
 +			mir_free( ucs2 );
 +		}
 +#else
 +		memcpy( str, logMsg->pszHead, headlen );
 +		memcpy( str + headlen, logMsg->pszMsg, msglen + 1 );
 +
 +		// try to detect utf8
 +		mir_utf8decode( str + headlen, NULL );
 +#endif
 +		InMsgs++;
 +		PostMessage(hwndConsole, HM_DUMP, 0, (LPARAM)dumpMsg);
 +	}
 +	return 0;
 +}
 +
 +///////////////////////////////////////////////////////////////////////////////
 +
 +static void LoadSettings()
 +{
 +	gIcons = DBGetContactSettingByte(NULL, "Console", "ShowIcons", 1);
 +	gSeparator = DBGetContactSettingByte(NULL, "Console", "Separator", 1);
 +	gSingleMode = DBGetContactSettingByte(NULL, "Console", "SingleMode", 0);
 +
 +	gWrapLen = DBGetContactSettingByte(NULL, "Console", "Wrap", DEFAULT_WRAPLEN);
 +	if ( gWrapLen < MIN_WRAPLEN ) gWrapLen = DEFAULT_WRAPLEN;
 +
 +	gLimit = DBGetContactSettingDword(NULL, "Console", "Limit", MAX_LIMIT);
 +	if (gLimit > MAX_LIMIT) gLimit = MAX_LIMIT;
 +	if (gLimit < MIN_LIMIT) gLimit = MIN_LIMIT;
 +}
 +
 +
 +static void SaveSettings(HWND hwndDlg)
 +{
 +	int len = GetDlgItemInt(hwndDlg, IDC_WRAP, NULL, FALSE);
 +	if (len < MIN_WRAPLEN )
 +		len = MIN_WRAPLEN;
 +	else
 +	if (len > MAX_WRAPLEN)
 +		len = MAX_WRAPLEN;
 +
 +	gWrapLen = len;
 +	SetDlgItemInt(hwndDlg, IDC_WRAP, gWrapLen, FALSE);
 +	DBWriteContactSettingByte(NULL, "Console", "Wrap", (BYTE)len);
 +
 +	len = GetDlgItemInt(hwndDlg, IDC_LIMIT, NULL, FALSE);
 +	if (len < MIN_LIMIT )
 +		len = MIN_LIMIT;
 +	else
 +	if (len > MAX_LIMIT)
 +		len = MAX_LIMIT;
 +
 +	gLimit = len;
 +	SetDlgItemInt(hwndDlg, IDC_LIMIT, gLimit, FALSE);
 +	DBWriteContactSettingDword(NULL, "Console", "Limit", len);
 +
 +	DBWriteContactSettingByte(NULL, "Console", "SingleMode", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SINGLE));
 +	DBWriteContactSettingByte(NULL, "Console", "Separator", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SEPARATOR));
 +	DBWriteContactSettingByte(NULL, "Console", "ShowIcons", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SHOWICONS));
 +
 +	DBWriteContactSettingByte(NULL, "Console", "ShowAtStart", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_START));
 +}
 +
 +
 +static BOOL CALLBACK OptDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
 +{
 +	switch(msg) {
 +		case WM_INITDIALOG:
 +			TranslateDialogDefault(hwndDlg);
 +			CheckDlgButton(hwndDlg, IDC_START, DBGetContactSettingByte(NULL, "Console", "ShowAtStart", 0));
 +			CheckDlgButton(hwndDlg, IDC_SINGLE, gSingleMode);
 +			CheckDlgButton(hwndDlg, IDC_SHOWICONS, gIcons);
 +			CheckDlgButton(hwndDlg, IDC_SEPARATOR, gSeparator);
 +			SetDlgItemInt(hwndDlg, IDC_WRAP, gWrapLen, FALSE);
 +			SetDlgItemInt(hwndDlg, IDC_LIMIT, gLimit, FALSE);
 +			break;
 +		case WM_COMMAND:
 +			switch (LOWORD(wParam)) {
 +				case IDC_RESTART:
 +				{
 +				    if (!pActive) break;
 +				    SaveSettings(hwndDlg);
 +					PostMessage(hwndConsole, HM_RESTART, 0, 0);
 +					break;
 +				}
 +				case IDC_LIMIT:
 +				case IDC_WRAP:
 +					if (HIWORD(wParam) != EN_CHANGE || (HWND) lParam != GetFocus())
 +						return FALSE;
 +					SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
 +					break;
 +				case IDC_START:
 +				case IDC_SEPARATOR:
 +				case IDC_SHOWICONS:
 +				case IDC_SINGLE:
 +					SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
 +					break;
 +			}
 +			break;
 +		case WM_NOTIFY:
 +			switch(((LPNMHDR)lParam)->idFrom)
 +			{
 +				case 0:
 +					switch (((LPNMHDR)lParam)->code)
 +					{
 +						case PSN_APPLY:
 +						{
 +						    SaveSettings(hwndDlg);
 +							break;
 +						}
 +					}
 +				break;
 +			}
 +			break;
 +	}
 +	return FALSE;
 +}
 +
 +
 +static int OptInit(WPARAM wParam,LPARAM lParam)
 +{
 +	OPTIONSDIALOGPAGE odp={0};
 +	odp.cbSize = sizeof(odp);
 +	odp.position = 0;
 +	odp.hInstance = hInst;
 +	odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPTIONS);
 +	odp.ptszGroup = TranslateT("Network");
 +	odp.ptszTitle = TranslateT("Console");
 +	odp.pfnDlgProc = OptDlgProc;
 +	odp.flags = ODPF_BOLDGROUPS | ODPF_TCHAR;
 +	odp.expertOnlyControls = NULL;
 +	CallService(MS_OPT_ADDPAGE, wParam, (LPARAM)&odp);
 +	return 0;
 +}
 +
 +///////////////////////////////////////////////////////////////////////////////
 +
 +static int OnColourChange(WPARAM wParam,LPARAM lParam)
 +{
 +	if (hwndConsole)
 +	{
 +	   	ColourID cid = {0};
 +	   	COLORREF col;
 +
 +	   	cid.cbSize=sizeof(cid);
 +		strcpy(cid.group,"Console");
 +		strcpy(cid.name,"Background");
 +		strcpy(cid.dbSettingsGroup,"Console");
 +		strcpy(cid.setting,"BgColor");
 +
 +		col = (COLORREF)CallService(MS_COLOUR_GET,(WPARAM)&cid,0);
 +		if (col != -1)
 +			SendMessage(hwndConsole, HM_SETCOLOR, (WPARAM)hfLogFont, (LPARAM)col);
 +	}
 +	return 0;
 +}
 +
 +
 +static int OnFontChange(WPARAM wParam,LPARAM lParam)
 +{
 +	if (hwndConsole)
 +	{
 +	   	COLORREF col;
 +		HFONT hf = NULL;
 +		LOGFONT LogFont={0};
 +		FontIDT fid={0};
 +		fid.cbSize=sizeof(fid);
 +
 +		_tcscpy(fid.group,_T("Console"));
 +		_tcscpy(fid.name,TranslateT("Text"));
 +
 +		col = (COLORREF)CallService(MS_FONT_GETT,(WPARAM)&fid,(LPARAM)&LogFont);
 +
 +		if (LogFont.lfHeight != 0)
 +		{
 +			hf=CreateFontIndirect(&LogFont);
 +
 +			SendMessage(hwndConsole, HM_SETFONT, (WPARAM)hf, (LPARAM)col);
 +
 +			if (hfLogFont)
 +				DeleteObject(hfLogFont);
 +			hfLogFont = hf;
 +		}
 +	}
 +	return 0;
 +}
 +
 +static int OnSystemModulesLoaded(WPARAM wParam,LPARAM lParam)
 +{
 +	int i = 1;
 +	if ( !hHooks[0] )
 +		hHooks[0] = HookEvent( ME_NETLIB_FASTDUMP, OnFastDump );
 +
 +	CreateServiceFunction(MS_CONSOLE_SHOW_HIDE, ShowHideConsole);
 +
 +
 +   	if (ServiceExists(MS_FONT_REGISTERT))
 +	{
 +		FontIDT fid={0};
 +
 +		fid.cbSize=sizeof(fid);
 +		_tcscpy(fid.group,_T("Console"));
 +		_tcscpy(fid.name,TranslateT("Text"));
 +		strcpy(fid.dbSettingsGroup,"Console");
 +		strcpy(fid.prefix,"ConsoleFont");
 +
 +		_tcscpy(fid.backgroundGroup,_T("Console"));
 +		_tcscpy(fid.backgroundName,_T("Background"));
 +
 +		fid.flags = FIDF_DEFAULTVALID;
 +
 +		fid.deffontsettings.charset = DEFAULT_CHARSET;
 +		fid.deffontsettings.colour = RGB(0, 0, 0);
 +		fid.deffontsettings.size = 10;
 +		fid.deffontsettings.style = 0;
 +		_tcsncpy(fid.deffontsettings.szFace, _T("Courier"), LF_FACESIZE);
 +
 +		CallService(MS_FONT_REGISTERT,(WPARAM)&fid,0);
 +
 +		hHooks[i++] = HookEvent(ME_FONT_RELOAD,OnFontChange);
 +	}
 +
 +   	if (ServiceExists(MS_COLOUR_REGISTERT))
 +   	{
 +	   	ColourIDT cid = {0};
 +
 +	   	cid.cbSize=sizeof(cid);
 +		_tcscpy(cid.group,_T("Console"));
 +		_tcscpy(cid.name,_T("Background"));
 +		strcpy(cid.dbSettingsGroup,"Console");
 +		strcpy(cid.setting,"BgColor");
 +
 +		cid.defcolour = RGB(255,255,255);
 +
 +		CallService(MS_COLOUR_REGISTERT,(WPARAM)&cid,0);
 +
 +		hHooks[i++] = HookEvent(ME_COLOUR_RELOAD, OnColourChange);
 +   	}
 +
 +   	if (ServiceExists(MS_HOTKEY_REGISTER))
 +   	{
 +	   	HOTKEYDESC hkd = {0};
 +
 +		hkd.cbSize=sizeof(hkd);
 +
 +		hkd.pszName = "Console_Show_Hide";
 +		hkd.pszDescription = Translate("Show/Hide Console");
 +		hkd.pszSection = "Main";
 +		hkd.pszService = MS_CONSOLE_SHOW_HIDE;
 +		hkd.DefHotKey = HOTKEYCODE(HOTKEYF_EXT, 'C');
 +
 +		CallService(MS_HOTKEY_REGISTER,(WPARAM)0,(LPARAM)&hkd);
 +   	}
 +
 +   	if (ServiceExists(MS_TB_ADDBUTTON))
 +   	{
 +		SKINICONDESC sid={0};
 +   		TBButton tbb = {0};
 +   		char szModuleFileName[MAX_PATH]={0};
 +
 +		GetModuleFileNameA(hInst,szModuleFileName,MAX_PATH);
 +
 +		sid.cbSize = sizeof(sid);
 +		sid.pszSection = Translate("Console");
 +		sid.pszDefaultFile = szModuleFileName;
 +
 +		sid.pszDescription = Translate("Show");
 +		sid.pszName = "Console_Up";
 +		sid.iDefaultIndex = -IDI_BTN_UP;
 +		CallService(MS_SKIN2_ADDICON,0,(LPARAM)&sid);
 +
 +		sid.pszDescription = Translate("Hide");
 +		sid.pszName = "Console_Down";
 +		sid.iDefaultIndex = -IDI_BTN_DN;
 +		CallService(MS_SKIN2_ADDICON,0,(LPARAM)&sid);
 +
 +		tbb.cbSize = sizeof(TBButton);
 +		tbb.pszButtonID = "console_btn";
 +		tbb.pszButtonName = Translate("Show/Hide Console");
 +		tbb.pszServiceName = MS_CONSOLE_SHOW_HIDE;
 +		tbb.hPrimaryIconHandle = (HANDLE)CallService(MS_SKIN2_GETICONHANDLE,0, (LPARAM)"Console_Up");
 +		tbb.hSecondaryIconHandle = (HANDLE)CallService(MS_SKIN2_GETICONHANDLE,0, (LPARAM)"Console_Down");
 +		tbb.pszTooltipUp = Translate("Show Console");
 +		tbb.pszTooltipDn = Translate("Hide Console");
 +		tbb.tbbFlags = TBBF_VISIBLE|TBBF_SHOWTOOLTIP;
 +		tbb.defPos = 20000;
 +		hTButton = (HANDLE)CallService(MS_TB_ADDBUTTON,0, (LPARAM)&tbb);
 +	}
 +
 +	if (hwndConsole && IsWindow(hwndConsole))
 +	{
 +		CLISTMENUITEM mi={0};
 +#ifdef TTB
 +		hHooks[i++] = HookEvent(ME_TTB_MODULELOADED, OnTTBLoaded);
 +#endif
 +		mi.cbSize=sizeof(mi);
 +		mi.flags=CMIF_TCHAR;
 +		mi.hIcon=hIcons[0];
 +		mi.ptszPopupName=TranslateT("&Help");
 +		mi.popupPosition=2000090000;
 +		mi.position=1000000000;
 +		mi.ptszName=(IsWindowVisible(hwndConsole))?TranslateT("Hide Console"):TranslateT("Show Console");
 +		mi.pszService=MS_CONSOLE_SHOW_HIDE;
 +		hMenu = (HANDLE)CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&mi);
 +
 +		OnFontChange(0,0);
 +		OnColourChange(0,0);
 +
 +		if (DBGetContactSettingByte(NULL,"Console","ShowAtStart",0) || DBGetContactSettingByte(NULL,"Console","Show",1))
 +			ShowConsole(1);
 +		else
 +			ShowConsole(0);
 +	}
 +
 +	return 0;
 +}
 +
 +static int PreshutdownConsole(WPARAM wParam,LPARAM lParam)
 +{
 +	int i;
 +
 +	if (hwndConsole) {
 +		PostMessage(hwndConsole, WM_CLOSE, 0, 1 );
 +	}
 +
 +	for (i=0;i<SIZEOF(hHooks);i++) {
 +		if (hHooks[i]) UnhookEvent(hHooks[i]);
 +	}
 +
 +	return 0;
 +}
 +
 +///////////////////////////////////////////////////////////////////////////////
 +
 +static int stringCompare( LOGWIN *lw1, LOGWIN *lw2 )
 +{
 +	return strcmp( lw1->Module, lw2->Module );
 +}
 +
 +///////////////////////////////////////////////////////////////////////////////
 +
 +static UINT logicons[] = {IDI_EMPTY, IDI_ARROW, IDI_IN, IDI_OUT, IDI_INFO};
 +
 +
 +void InitConsole()
 +{
 +	int i;
 +	HICON hi;
 +
 +	mir_getMMI(&mmi);
 +	mir_getUTFI(&utfi);
 +	mir_getLI(&li);
 +
 +	lModules.sortFunc = stringCompare;
 +	lModules.increment = 5;
 +
 +	hIcons[0] = LoadIcon(hInst, MAKEINTRESOURCE(IDI_CONSOLE));
 +	hIcons[1] = (HICON)LoadImage(hInst,MAKEINTRESOURCE(IDI_NOSCROLL),IMAGE_ICON,GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),0);
 +	hIcons[2] = (HICON)LoadImage(hInst,MAKEINTRESOURCE(IDI_PAUSED),IMAGE_ICON,GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),0);
 +
 +	for(i = 0; i < SIZEOF(ctrls); i++) {
 +		hIcons[i+ICON_FIRST] = (HICON)LoadImage(hInst,MAKEINTRESOURCE(ctrls[i].icon),IMAGE_ICON,GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),0);
 +	}
 +
 +   	gImg = ImageList_Create(LOGICONX_SIZE, LOGICONY_SIZE, ILC_COLOR24 | ILC_MASK, SIZEOF(logicons), 0);
 +
 +    for(i = 0; i < SIZEOF(logicons); i++)
 +    {
 +       	hi = (HICON)LoadImage(hInst,MAKEINTRESOURCE(logicons[i]),IMAGE_ICON,LOGICONX_SIZE,LOGICONY_SIZE,0);
 +		if (hi)
 +		{
 +			ImageList_AddIcon(gImg, hi);
 +			DestroyIcon(hi);
 +		}
 +	}
 +
 +	LoadSettings();
 +
 +	mir_forkthread(ConsoleThread, 0);
 +
 +	HookEvent(ME_SYSTEM_PRESHUTDOWN, PreshutdownConsole);
 +	HookEvent(ME_SYSTEM_MODULESLOADED, OnSystemModulesLoaded);
 +	HookEvent(ME_OPT_INITIALISE, OptInit);
 +
 +	hHooks[0] = HookEvent( ME_NETLIB_FASTDUMP, OnFastDump );
 +}
 +
 +void ShutdownConsole(void)
 +{
 +	int i;
 +
 +	li.List_Destroy(&lModules);
 +
 +	if (gImg) ImageList_Destroy(gImg);
 +
 +	for(i = 0; i < SIZEOF(hIcons); i++) {
 +		if (hIcons[i]) DestroyIcon(hIcons[i]);
 +	}
 +
 +#ifdef TBB
 +	if (BmpUp) DeleteObject(BmpUp);
 +	if (BmpDn) DeleteObject(BmpDn);
 +#endif
 +}
 +
 +////////////////////////////////////////////////////////////////////////////////
 +
 +TCHAR *addstring(TCHAR *str, TCHAR *add) {
 +	_tcscpy(str,add);
 +	return str + _tcslen(add) + 1;
 +}
 +
 +
 +static int Openfile(TCHAR *outputFile, int selection)
 +{
 +	OPENFILENAME ofn = {0};
 +	TCHAR filename[MAX_PATH+2] = _T("");
 +	TCHAR *title;
 +
 +	TCHAR *filter, *tmp, *tmp1, *tmp2;
 +	tmp1 = TranslateT("Text Files (*.txt)");
 +	tmp2 = TranslateT("All Files");
 +	filter = tmp = (TCHAR*)_alloca((_tcslen(tmp1)+_tcslen(tmp2)+11)*sizeof(TCHAR));
 +	tmp = addstring(tmp, tmp1);
 +	tmp = addstring(tmp, _T("*.TXT"));
 +	tmp = addstring(tmp, tmp2);
 +	tmp = addstring(tmp, _T("*"));
 +	*tmp = 0;
 +
 +	if (selection)
 +		title = TranslateT("Save selection to file");
 +	else
 +		title = TranslateT("Save log to file");
 +
 +	ofn.lStructSize = sizeof(ofn);
 +	ofn.lpstrFile = filename;
 +	ofn.lpstrFilter = filter;
 +	ofn.Flags = OFN_HIDEREADONLY | OFN_SHAREAWARE | OFN_PATHMUSTEXIST | OFN_OVERWRITEPROMPT;
 +	ofn.lpstrTitle = title;
 +	ofn.nMaxFile = MAX_PATH;
 +	ofn.lpstrDefExt = _T("txt");
 +
 +	if (!GetSaveFileName(&ofn))
 +		return 0;
 +	_tcscpy(outputFile, filename);
 +	return 1;
 +}
 +
 +////////////////////////////////////////////////////////////////////////////////
 diff --git a/Console/Console.dsp b/Console/Console.dsp new file mode 100644 index 0000000..292f47e --- /dev/null +++ b/Console/Console.dsp @@ -0,0 +1,363 @@ +# Microsoft Developer Studio Project File - Name="Console" - Package Owner=<4>
 +# Microsoft Developer Studio Generated Build File, Format Version 6.00
 +# ** DO NOT EDIT **
 +
 +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
 +
 +CFG=Console - Win32 Debug
 +!MESSAGE This is not a valid makefile. To build this project using NMAKE,
 +!MESSAGE use the Export Makefile command and run
 +!MESSAGE 
 +!MESSAGE NMAKE /f "Console.mak".
 +!MESSAGE 
 +!MESSAGE You can specify a configuration when running NMAKE
 +!MESSAGE by defining the macro CFG on the command line. For example:
 +!MESSAGE 
 +!MESSAGE NMAKE /f "Console.mak" CFG="Console - Win32 Debug"
 +!MESSAGE 
 +!MESSAGE Possible choices for configuration are:
 +!MESSAGE 
 +!MESSAGE "Console - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
 +!MESSAGE "Console - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
 +!MESSAGE "Console - Win32 Debug Unicode" (based on "Win32 (x86) Dynamic-Link Library")
 +!MESSAGE "Console - Win32 Release Unicode" (based on "Win32 (x86) Dynamic-Link Library")
 +!MESSAGE 
 +
 +# Begin Project
 +# PROP AllowPerConfigDependencies 0
 +# PROP Scc_ProjName "Perforce Project"
 +# PROP Scc_LocalPath "."
 +CPP=cl.exe
 +MTL=midl.exe
 +RSC=rc.exe
 +
 +!IF  "$(CFG)" == "Console - Win32 Debug"
 +
 +# PROP BASE Use_MFC 0
 +# PROP BASE Use_Debug_Libraries 1
 +# PROP BASE Output_Dir ".\Debug"
 +# PROP BASE Intermediate_Dir ".\Debug"
 +# PROP BASE Target_Dir ""
 +# PROP Use_MFC 0
 +# PROP Use_Debug_Libraries 1
 +# PROP Output_Dir ".\Debug"
 +# PROP Intermediate_Dir ".\Debug"
 +# PROP Target_Dir ""
 +# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "Console_EXPORTS" /D "_MBCS" /FR /Yu"Commonheaders.h" /GZ /c
 +# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "Console_EXPORTS" /D "_MBCS" /FR /Yu"Commonheaders.h" /GZ /c
 +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 +# ADD BASE RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
 +# ADD RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
 +BSC32=bscmake.exe
 +# ADD BASE BSC32 /nologo
 +# ADD BSC32 /nologo
 +LINK32=link.exe
 +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:IX86 /out:"..\..\Bin\Debug\plugins\Console.dll" /pdbtype:sept
 +# SUBTRACT BASE LINK32 /pdb:none
 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:no /map /debug /machine:IX86 /out:"..\..\Bin\Debug\plugins\Console.dll" /pdbtype:sept
 +# SUBTRACT LINK32 /pdb:none
 +
 +!ELSEIF  "$(CFG)" == "Console - Win32 Release"
 +
 +# PROP BASE Use_MFC 0
 +# PROP BASE Use_Debug_Libraries 0
 +# PROP BASE Output_Dir ".\Release"
 +# PROP BASE Intermediate_Dir ".\Release"
 +# PROP BASE Target_Dir ""
 +# PROP Use_MFC 0
 +# PROP Use_Debug_Libraries 0
 +# PROP Output_Dir ".\Release"
 +# PROP Intermediate_Dir ".\Release"
 +# PROP Ignore_Export_Lib 0
 +# PROP Target_Dir ""
 +# ADD BASE CPP /nologo /MD /W3 /GX /Ox /Ob2 /Gy /I "../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "Console_EXPORTS" /D "_MBCS" /FR /Yu"Commonheaders.h" /GF /c
 +# ADD CPP /nologo /MD /W3 /Zi /Ox /Ot /Os /Ob2 /Gf /Gy /I "../../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "Console_EXPORTS" /D "_MBCS" /FR /Yu"Commonheaders.h" /GF /c
 +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 +# ADD BASE RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
 +# ADD RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
 +BSC32=bscmake.exe
 +# ADD BASE BSC32 /nologo
 +# ADD BSC32 /nologo
 +LINK32=link.exe
 +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /map /machine:IX86 /out:"..\..\bin\release\plugins\Console.dll" /pdbtype:sept /ALIGN:4096
 +# SUBTRACT BASE LINK32 /pdb:none
 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /map /machine:IX86 /out:"..\..\bin\release\plugins\Console.dll" /pdbtype:sept /ALIGN:4096
 +# SUBTRACT LINK32 /pdb:none
 +
 +!ELSEIF  "$(CFG)" == "Console - Win32 Debug Unicode"
 +
 +# PROP BASE Use_MFC 0
 +# PROP BASE Use_Debug_Libraries 1
 +# PROP BASE Output_Dir "$(ConfigurationName)"
 +# PROP BASE Intermediate_Dir "$(ConfigurationName)"
 +# PROP BASE Target_Dir ""
 +# PROP Use_MFC 0
 +# PROP Use_Debug_Libraries 1
 +# PROP Output_Dir "Debug_Unicode"
 +# PROP Intermediate_Dir "Debug_Unicode"
 +# PROP Ignore_Export_Lib 0
 +# PROP Target_Dir ""
 +# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../include" /D "_UNICODE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "Console_EXPORTS" /FR /Fp".\Debug/Console.pch" /Yu"Commonheaders.h" /Fo".\Debug/" /Fd".\Debug/" /GZ /c
 +# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../include" /D "_UNICODE" /D "UNICODE" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "Console_EXPORTS" /FR /Fp".\Debug/Console.pch" /Yu"Commonheaders.h" /Fo".\Debug/" /Fd".\Debug/" /GZ /c
 +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 +# ADD BASE RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
 +# ADD RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
 +BSC32=bscmake.exe
 +# ADD BASE BSC32 /nologo
 +# ADD BSC32 /nologo
 +LINK32=link.exe
 +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:".\Debug\Console.pdb" /map:".\Debug\Console.map" /debug /machine:IX86 /out:"..\..\Bin\Debug Unicode\plugins\Console.dll" /implib:".\Debug/Console.lib" /pdbtype:sept
 +# SUBTRACT BASE LINK32 /pdb:none
 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:".\Debug\Console.pdb" /map:".\Debug\Console.map" /debug /machine:IX86 /out:"..\..\Bin\Debug Unicode\plugins\Console.dll" /implib:".\Debug/Console.lib" /pdbtype:sept
 +# SUBTRACT LINK32 /pdb:none
 +
 +!ELSEIF  "$(CFG)" == "Console - Win32 Release Unicode"
 +
 +# PROP BASE Use_MFC 0
 +# PROP BASE Use_Debug_Libraries 0
 +# PROP BASE Output_Dir "$(ConfigurationName)"
 +# PROP BASE Intermediate_Dir "$(ConfigurationName)"
 +# PROP BASE Target_Dir ""
 +# PROP Use_MFC 0
 +# PROP Use_Debug_Libraries 0
 +# PROP Output_Dir "Release_Unicode"
 +# PROP Intermediate_Dir "Release_Unicode"
 +# PROP Ignore_Export_Lib 0
 +# PROP Target_Dir ""
 +# ADD BASE CPP /nologo /MT /W3 /GX /Ox /Ob2 /Gy /I "../../include" /D "_UNICODE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "Console_EXPORTS" /FR /Fo".\Release/" /GF /c
 +# ADD CPP /nologo /MD /W3 /Zi /Ox /Og /Gf /Gy /I "../../include" /D "_UNICODE" /D "UNICODE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "Console_EXPORTS" /Fr /Fo".\Release/" /Fd".\Release/" /c
 +# SUBTRACT CPP /YX /Yc /Yu
 +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 +# ADD BASE RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
 +# ADD RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
 +BSC32=bscmake.exe
 +# ADD BASE BSC32 /nologo
 +# ADD BSC32 /nologo
 +LINK32=link.exe
 +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /pdb:".\Release\Console.pdb" /map /machine:IX86 /out:"..\..\bin\release unicode\plugins\Console.dll" /implib:".\Release/Console.lib" /pdbtype:sept /ALIGN:4096
 +# SUBTRACT BASE LINK32 /pdb:none
 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /map /debug /machine:IX86 /out:"Release_Unicode\Plugins\Console.dll" /implib:".\Release/Console.lib"
 +# SUBTRACT LINK32 /pdb:none
 +
 +!ENDIF 
 +
 +# Begin Target
 +
 +# Name "Console - Win32 Debug"
 +# Name "Console - Win32 Release"
 +# Name "Console - Win32 Debug Unicode"
 +# Name "Console - Win32 Release Unicode"
 +# Begin Group "Source Files"
 +
 +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
 +# Begin Source File
 +
 +SOURCE=Commonheaders.c
 +DEP_CPP_COMMO=\
 +	".\Commonheaders.h"\
 +	".\m_toolbar.h"\
 +	".\m_toptoolbar.h"\
 +	".\version.h"\
 +	{$(INCLUDE)}"m_button.h"\
 +	{$(INCLUDE)}"m_clist.h"\
 +	{$(INCLUDE)}"m_clui.h"\
 +	{$(INCLUDE)}"m_database.h"\
 +	{$(INCLUDE)}"m_fontservice.h"\
 +	{$(INCLUDE)}"m_hotkeys.h"\
 +	{$(INCLUDE)}"m_icolib.h"\
 +	{$(INCLUDE)}"m_langpack.h"\
 +	{$(INCLUDE)}"m_netlib.h"\
 +	{$(INCLUDE)}"m_options.h"\
 +	{$(INCLUDE)}"m_plugins.h"\
 +	{$(INCLUDE)}"m_system.h"\
 +	{$(INCLUDE)}"m_utils.h"\
 +	{$(INCLUDE)}"newpluginapi.h"\
 +	{$(INCLUDE)}"statusmodes.h"\
 +	{$(INCLUDE)}"win2k.h"\
 +	
 +
 +!IF  "$(CFG)" == "Console - Win32 Debug"
 +
 +# ADD CPP /nologo /GX /Od /FR /Yc"Commonheaders.h" /GZ
 +
 +!ELSEIF  "$(CFG)" == "Console - Win32 Release"
 +
 +# ADD CPP /nologo /GX /O2 /FR /Yc"Commonheaders.h"
 +
 +!ELSEIF  "$(CFG)" == "Console - Win32 Debug Unicode"
 +
 +# ADD CPP /nologo /GX /Od /FR /Yc"Commonheaders.h" /GZ
 +
 +!ELSEIF  "$(CFG)" == "Console - Win32 Release Unicode"
 +
 +# ADD CPP /nologo /GX /O2 /FR
 +
 +!ENDIF 
 +
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=Console.c
 +DEP_CPP_CONSO=\
 +	".\Commonheaders.h"\
 +	".\m_toolbar.h"\
 +	".\m_toptoolbar.h"\
 +	".\version.h"\
 +	{$(INCLUDE)}"m_button.h"\
 +	{$(INCLUDE)}"m_clist.h"\
 +	{$(INCLUDE)}"m_clui.h"\
 +	{$(INCLUDE)}"m_database.h"\
 +	{$(INCLUDE)}"m_fontservice.h"\
 +	{$(INCLUDE)}"m_hotkeys.h"\
 +	{$(INCLUDE)}"m_icolib.h"\
 +	{$(INCLUDE)}"m_langpack.h"\
 +	{$(INCLUDE)}"m_netlib.h"\
 +	{$(INCLUDE)}"m_options.h"\
 +	{$(INCLUDE)}"m_plugins.h"\
 +	{$(INCLUDE)}"m_system.h"\
 +	{$(INCLUDE)}"m_utils.h"\
 +	{$(INCLUDE)}"newpluginapi.h"\
 +	{$(INCLUDE)}"statusmodes.h"\
 +	{$(INCLUDE)}"win2k.h"\
 +	
 +
 +!IF  "$(CFG)" == "Console - Win32 Debug"
 +
 +# ADD CPP /nologo /GX /Od /FR /GZ
 +
 +!ELSEIF  "$(CFG)" == "Console - Win32 Release"
 +
 +# ADD CPP /nologo /GX /O2 /FR
 +
 +!ELSEIF  "$(CFG)" == "Console - Win32 Debug Unicode"
 +
 +# ADD CPP /nologo /GX /Od /FR /GZ
 +
 +!ELSEIF  "$(CFG)" == "Console - Win32 Release Unicode"
 +
 +# ADD CPP /nologo /GX /O2 /FR
 +
 +!ENDIF 
 +
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=.\init.c
 +DEP_CPP_INIT_=\
 +	".\Commonheaders.h"\
 +	".\m_toolbar.h"\
 +	".\m_toptoolbar.h"\
 +	".\version.h"\
 +	{$(INCLUDE)}"m_button.h"\
 +	{$(INCLUDE)}"m_clist.h"\
 +	{$(INCLUDE)}"m_clui.h"\
 +	{$(INCLUDE)}"m_database.h"\
 +	{$(INCLUDE)}"m_fontservice.h"\
 +	{$(INCLUDE)}"m_hotkeys.h"\
 +	{$(INCLUDE)}"m_icolib.h"\
 +	{$(INCLUDE)}"m_langpack.h"\
 +	{$(INCLUDE)}"m_netlib.h"\
 +	{$(INCLUDE)}"m_options.h"\
 +	{$(INCLUDE)}"m_plugins.h"\
 +	{$(INCLUDE)}"m_system.h"\
 +	{$(INCLUDE)}"m_utils.h"\
 +	{$(INCLUDE)}"newpluginapi.h"\
 +	{$(INCLUDE)}"statusmodes.h"\
 +	{$(INCLUDE)}"win2k.h"\
 +	
 +# End Source File
 +# End Group
 +# Begin Group "Header Files"
 +
 +# PROP Default_Filter "h;hpp;hxx;hm;inl"
 +# Begin Source File
 +
 +SOURCE=Commonheaders.h
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=.\resource.h
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=.\version.h
 +# End Source File
 +# End Group
 +# Begin Group "Resource Files"
 +
 +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
 +# Begin Source File
 +
 +SOURCE=.\res\btn_dn.ico
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=.\res\btn_up.ico
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=.\res\close.ico
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=Res\console.ico
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=Res\console_dn.bmp
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=Res\console_up.bmp
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=.\Res\copy.ico
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=.\Res\delete.ico
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=.\res\noscroll.ico
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=.\Res\options.ico
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=.\res\pause.ico
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=.\res\paused.ico
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=resource.rc
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=.\Res\Save.ico
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=.\res\scroll.ico
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=.\res\start.ico
 +# End Source File
 +# Begin Source File
 +
 +SOURCE=.\res\started.ico
 +# End Source File
 +# End Group
 +# End Target
 +# End Project
 diff --git a/Console/Console.dsw b/Console/Console.dsw new file mode 100644 index 0000000..3250410 --- /dev/null +++ b/Console/Console.dsw @@ -0,0 +1,33 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00
 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
 +
 +###############################################################################
 +
 +Project: "Console"=Console.dsp - Package Owner=<4>
 +
 +Package=<5>
 +{{{
 +    begin source code control
 +    Perforce Project
 +    .
 +    end source code control
 +}}}
 +
 +Package=<4>
 +{{{
 +}}}
 +
 +###############################################################################
 +
 +Global:
 +
 +Package=<5>
 +{{{
 +}}}
 +
 +Package=<3>
 +{{{
 +}}}
 +
 +###############################################################################
 +
 diff --git a/Console/Console.opt b/Console/Console.opt Binary files differnew file mode 100644 index 0000000..8c2c900 --- /dev/null +++ b/Console/Console.opt diff --git a/Console/Console.plg b/Console/Console.plg new file mode 100644 index 0000000..60b675e --- /dev/null +++ b/Console/Console.plg @@ -0,0 +1,49 @@ +<html>
 +<body>
 +<pre>
 +<h1>Build Log</h1>
 +<h3>
 +--------------------Configuration: Console - Win32 Release Unicode--------------------
 +</h3>
 +<h3>Command Lines</h3>
 +Creating command line "rc.exe /l 0x409 /fo"Release_Unicode/resource.res" /i "..\..\include" /d "NDEBUG" "D:\Sources\svn.miranda.im\console\trunk\resource.rc"" 
 +Creating temporary file "C:\Temp\RSPB728.tmp" with contents
 +[
 +/nologo /MD /W3 /GX /Zi /O2 /I "../../include" /D "_UNICODE" /D "UNICODE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "Console_EXPORTS" /FR"Release_Unicode/" /Fo".\Release/" /Fd".\Release/" /c 
 +"D:\Sources\svn.miranda.im\console\trunk\Commonheaders.c"
 +"D:\Sources\svn.miranda.im\console\trunk\Console.c"
 +]
 +Creating command line "cl.exe @C:\Temp\RSPB728.tmp" 
 +Creating temporary file "C:\Temp\RSPB729.tmp" with contents
 +[
 +/nologo /MD /W3 /Zi /Ox /Og /Gf /Gy /I "../../include" /D "_UNICODE" /D "UNICODE" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "Console_EXPORTS" /Fr"Release_Unicode/" /Fo".\Release/" /Fd".\Release/" /c 
 +"D:\Sources\svn.miranda.im\console\trunk\init.c"
 +]
 +Creating command line "cl.exe @C:\Temp\RSPB729.tmp" 
 +Creating temporary file "C:\Temp\RSPB72A.tmp" with contents
 +[
 +kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"Release_Unicode/Console.pdb" /map:"Release_Unicode/Console.map" /debug /machine:IX86 /out:"Release_Unicode\Plugins\Console.dll" /implib:".\Release/Console.lib" 
 +.\Release\Commonheaders.obj
 +.\Release\Console.obj
 +.\Release\init.obj
 +.\Release_Unicode\resource.res
 +]
 +Creating command line "link.exe @C:\Temp\RSPB72A.tmp"
 +<h3>Output Window</h3>
 +Compiling resources...
 +Compiling...
 +Commonheaders.c
 +Console.c
 +Generating Code...
 +Compiling...
 +init.c
 +Linking...
 +   Creating library .\Release/Console.lib and object .\Release/Console.exp
 +
 +
 +
 +<h3>Results</h3>
 +Console.dll - 0 error(s), 0 warning(s)
 +</pre>
 +</body>
 +</html>
 diff --git a/Console/Console.sln b/Console/Console.sln new file mode 100644 index 0000000..8387889 --- /dev/null +++ b/Console/Console.sln @@ -0,0 +1,40 @@ +Microsoft Visual Studio Solution File, Format Version 11.00
 +# Visual Studio 2010
 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Console", "Console.vcxproj", "{A231E008-2D1A-4F24-95DD-59F56F85A499}"
 +EndProject
 +Global
 +	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 +		Debug Unicode|Win32 = Debug Unicode|Win32
 +		Debug Unicode|x64 = Debug Unicode|x64
 +		Debug|Win32 = Debug|Win32
 +		Debug|x64 = Debug|x64
 +		Release Unicode|Win32 = Release Unicode|Win32
 +		Release Unicode|x64 = Release Unicode|x64
 +		Release|Win32 = Release|Win32
 +		Release|x64 = Release|x64
 +	EndGlobalSection
 +	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Debug Unicode|Win32.ActiveCfg = Debug Unicode|Win32
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Debug Unicode|Win32.Build.0 = Debug Unicode|Win32
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Debug Unicode|x64.ActiveCfg = Debug Unicode|x64
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Debug Unicode|x64.Build.0 = Debug Unicode|x64
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Debug|Win32.ActiveCfg = Debug|Win32
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Debug|Win32.Build.0 = Debug|Win32
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Debug|x64.ActiveCfg = Debug|x64
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Debug|x64.Build.0 = Debug|x64
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Release Unicode|Win32.ActiveCfg = Release Unicode|Win32
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Release Unicode|Win32.Build.0 = Release Unicode|Win32
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Release Unicode|x64.ActiveCfg = Release Unicode|x64
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Release Unicode|x64.Build.0 = Release Unicode|x64
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Release|Win32.ActiveCfg = Release|Win32
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Release|Win32.Build.0 = Release|Win32
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Release|x64.ActiveCfg = Release|x64
 +		{A231E008-2D1A-4F24-95DD-59F56F85A499}.Release|x64.Build.0 = Release|x64
 +	EndGlobalSection
 +	GlobalSection(SolutionProperties) = preSolution
 +		HideSolutionNode = FALSE
 +	EndGlobalSection
 +	GlobalSection(DPCodeReviewSolutionGUID) = preSolution
 +		DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
 +	EndGlobalSection
 +EndGlobal
 diff --git a/Console/Console.vcproj b/Console/Console.vcproj new file mode 100644 index 0000000..e84cbfb --- /dev/null +++ b/Console/Console.vcproj @@ -0,0 +1,634 @@ +<?xml version="1.0" encoding="windows-1251"?>
 +<VisualStudioProject
 +	ProjectType="Visual C++"
 +	Version="9,00"
 +	Name="Console"
 +	ProjectGUID="{A231E008-2D1A-4F24-95DD-59F56F85A499}"
 +	RootNamespace="Console"
 +	SccProjectName="Perforce Project"
 +	SccLocalPath="."
 +	TargetFrameworkVersion="131072"
 +	>
 +	<Platforms>
 +		<Platform
 +			Name="Win32"
 +		/>
 +	</Platforms>
 +	<ToolFiles>
 +	</ToolFiles>
 +	<Configurations>
 +		<Configuration
 +			Name="Debug|Win32"
 +			OutputDirectory=".\Debug"
 +			IntermediateDirectory=".\Debug"
 +			ConfigurationType="2"
 +			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
 +			UseOfMFC="0"
 +			ATLMinimizesCRunTimeLibraryUsage="false"
 +			CharacterSet="2"
 +			>
 +			<Tool
 +				Name="VCPreBuildEventTool"
 +			/>
 +			<Tool
 +				Name="VCCustomBuildTool"
 +			/>
 +			<Tool
 +				Name="VCXMLDataGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCWebServiceProxyGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCMIDLTool"
 +				PreprocessorDefinitions="_DEBUG"
 +				MkTypLibCompatible="true"
 +				SuppressStartupBanner="true"
 +				TargetEnvironment="1"
 +				TypeLibraryName=".\Debug/Console.tlb"
 +				HeaderFileName=""
 +			/>
 +			<Tool
 +				Name="VCCLCompilerTool"
 +				Optimization="0"
 +				AdditionalIncludeDirectories="../include;../ExternalAPI"
 +				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;Console_EXPORTS"
 +				BasicRuntimeChecks="3"
 +				RuntimeLibrary="3"
 +				UsePrecompiledHeader="2"
 +				PrecompiledHeaderThrough="Commonheaders.h"
 +				PrecompiledHeaderFile=".\Debug/Console.pch"
 +				AssemblerListingLocation=".\Debug/"
 +				ObjectFile=".\Debug/"
 +				ProgramDataBaseFileName=".\Debug/"
 +				BrowseInformation="1"
 +				WarningLevel="3"
 +				SuppressStartupBanner="true"
 +				DebugInformationFormat="3"
 +				CompileAs="0"
 +			/>
 +			<Tool
 +				Name="VCManagedResourceCompilerTool"
 +			/>
 +			<Tool
 +				Name="VCResourceCompilerTool"
 +				PreprocessorDefinitions="_DEBUG"
 +				Culture="1033"
 +				AdditionalIncludeDirectories="../include;../ExternalAPI"
 +			/>
 +			<Tool
 +				Name="VCPreLinkEventTool"
 +			/>
 +			<Tool
 +				Name="VCLinkerTool"
 +				OutputFile="../../Bin/Debug/plugins/Console.dll"
 +				LinkIncremental="1"
 +				SuppressStartupBanner="true"
 +				GenerateDebugInformation="true"
 +				ProgramDatabaseFile=".\Debug/Console.pdb"
 +				GenerateMapFile="true"
 +				MapFileName=".\Debug/Console.map"
 +				OptimizeForWindows98="1"
 +				RandomizedBaseAddress="1"
 +				DataExecutionPrevention="0"
 +				ImportLibrary=".\Debug/Console.lib"
 +				TargetMachine="1"
 +			/>
 +			<Tool
 +				Name="VCALinkTool"
 +			/>
 +			<Tool
 +				Name="VCManifestTool"
 +			/>
 +			<Tool
 +				Name="VCXDCMakeTool"
 +			/>
 +			<Tool
 +				Name="VCBscMakeTool"
 +			/>
 +			<Tool
 +				Name="VCFxCopTool"
 +			/>
 +			<Tool
 +				Name="VCAppVerifierTool"
 +			/>
 +			<Tool
 +				Name="VCPostBuildEventTool"
 +			/>
 +		</Configuration>
 +		<Configuration
 +			Name="Release|Win32"
 +			OutputDirectory=".\Release"
 +			IntermediateDirectory=".\Release"
 +			ConfigurationType="2"
 +			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
 +			UseOfMFC="0"
 +			ATLMinimizesCRunTimeLibraryUsage="false"
 +			CharacterSet="2"
 +			>
 +			<Tool
 +				Name="VCPreBuildEventTool"
 +			/>
 +			<Tool
 +				Name="VCCustomBuildTool"
 +			/>
 +			<Tool
 +				Name="VCXMLDataGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCWebServiceProxyGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCMIDLTool"
 +				PreprocessorDefinitions="NDEBUG"
 +				MkTypLibCompatible="true"
 +				SuppressStartupBanner="true"
 +				TargetEnvironment="1"
 +				TypeLibraryName=".\Release/Console.tlb"
 +				HeaderFileName=""
 +			/>
 +			<Tool
 +				Name="VCCLCompilerTool"
 +				Optimization="3"
 +				InlineFunctionExpansion="2"
 +				AdditionalIncludeDirectories="../include;../ExternalAPI"
 +				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;Console_EXPORTS"
 +				StringPooling="true"
 +				RuntimeLibrary="2"
 +				EnableFunctionLevelLinking="true"
 +				UsePrecompiledHeader="2"
 +				PrecompiledHeaderThrough="Commonheaders.h"
 +				PrecompiledHeaderFile=".\Release/Console.pch"
 +				AssemblerListingLocation=".\Release/"
 +				ObjectFile=".\Release/"
 +				ProgramDataBaseFileName=".\Release/"
 +				BrowseInformation="1"
 +				WarningLevel="3"
 +				SuppressStartupBanner="true"
 +				CompileAs="0"
 +			/>
 +			<Tool
 +				Name="VCManagedResourceCompilerTool"
 +			/>
 +			<Tool
 +				Name="VCResourceCompilerTool"
 +				PreprocessorDefinitions="NDEBUG"
 +				Culture="1033"
 +				AdditionalIncludeDirectories="../include;../ExternalAPI"
 +			/>
 +			<Tool
 +				Name="VCPreLinkEventTool"
 +			/>
 +			<Tool
 +				Name="VCLinkerTool"
 +				AdditionalOptions="/ALIGN:4096"
 +				OutputFile="../../bin/release/plugins/Console.dll"
 +				LinkIncremental="1"
 +				SuppressStartupBanner="true"
 +				ProgramDatabaseFile=".\Release/Console.pdb"
 +				GenerateMapFile="true"
 +				OptimizeForWindows98="1"
 +				RandomizedBaseAddress="1"
 +				DataExecutionPrevention="0"
 +				ImportLibrary=".\Release/Console.lib"
 +				TargetMachine="1"
 +			/>
 +			<Tool
 +				Name="VCALinkTool"
 +			/>
 +			<Tool
 +				Name="VCManifestTool"
 +			/>
 +			<Tool
 +				Name="VCXDCMakeTool"
 +			/>
 +			<Tool
 +				Name="VCBscMakeTool"
 +			/>
 +			<Tool
 +				Name="VCFxCopTool"
 +			/>
 +			<Tool
 +				Name="VCAppVerifierTool"
 +			/>
 +			<Tool
 +				Name="VCPostBuildEventTool"
 +			/>
 +		</Configuration>
 +		<Configuration
 +			Name="Debug Unicode|Win32"
 +			OutputDirectory="$(ConfigurationName)"
 +			IntermediateDirectory="$(ConfigurationName)"
 +			ConfigurationType="2"
 +			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
 +			UseOfMFC="0"
 +			ATLMinimizesCRunTimeLibraryUsage="false"
 +			CharacterSet="1"
 +			>
 +			<Tool
 +				Name="VCPreBuildEventTool"
 +			/>
 +			<Tool
 +				Name="VCCustomBuildTool"
 +			/>
 +			<Tool
 +				Name="VCXMLDataGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCWebServiceProxyGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCMIDLTool"
 +				PreprocessorDefinitions="_DEBUG"
 +				MkTypLibCompatible="true"
 +				SuppressStartupBanner="true"
 +				TargetEnvironment="1"
 +				TypeLibraryName=".\Debug/Console.tlb"
 +				HeaderFileName=""
 +			/>
 +			<Tool
 +				Name="VCCLCompilerTool"
 +				Optimization="0"
 +				AdditionalIncludeDirectories="../include;../ExternalAPI"
 +				PreprocessorDefinitions="_UNICODE;WIN32;_DEBUG;_WINDOWS;_USRDLL;Console_EXPORTS"
 +				BasicRuntimeChecks="3"
 +				RuntimeLibrary="3"
 +				UsePrecompiledHeader="2"
 +				PrecompiledHeaderThrough="Commonheaders.h"
 +				PrecompiledHeaderFile=".\Debug/Console.pch"
 +				AssemblerListingLocation=".\Debug/"
 +				ObjectFile=".\Debug/"
 +				ProgramDataBaseFileName=".\Debug/"
 +				BrowseInformation="1"
 +				WarningLevel="3"
 +				SuppressStartupBanner="true"
 +				DebugInformationFormat="3"
 +				CompileAs="0"
 +			/>
 +			<Tool
 +				Name="VCManagedResourceCompilerTool"
 +			/>
 +			<Tool
 +				Name="VCResourceCompilerTool"
 +				PreprocessorDefinitions="_DEBUG"
 +				Culture="1033"
 +				AdditionalIncludeDirectories="../include;../ExternalAPI"
 +			/>
 +			<Tool
 +				Name="VCPreLinkEventTool"
 +			/>
 +			<Tool
 +				Name="VCLinkerTool"
 +				OutputFile="../../Bin/Debug Unicode/plugins/Console.dll"
 +				LinkIncremental="1"
 +				SuppressStartupBanner="true"
 +				GenerateDebugInformation="true"
 +				ProgramDatabaseFile=".\Debug/Console.pdb"
 +				GenerateMapFile="true"
 +				MapFileName=".\Debug/Console.map"
 +				OptimizeForWindows98="1"
 +				RandomizedBaseAddress="1"
 +				DataExecutionPrevention="0"
 +				ImportLibrary=".\Debug/Console.lib"
 +				TargetMachine="1"
 +			/>
 +			<Tool
 +				Name="VCALinkTool"
 +			/>
 +			<Tool
 +				Name="VCManifestTool"
 +			/>
 +			<Tool
 +				Name="VCXDCMakeTool"
 +			/>
 +			<Tool
 +				Name="VCBscMakeTool"
 +			/>
 +			<Tool
 +				Name="VCFxCopTool"
 +			/>
 +			<Tool
 +				Name="VCAppVerifierTool"
 +			/>
 +			<Tool
 +				Name="VCPostBuildEventTool"
 +			/>
 +		</Configuration>
 +		<Configuration
 +			Name="Release Unicode|Win32"
 +			OutputDirectory="$(ConfigurationName)"
 +			IntermediateDirectory="$(ConfigurationName)"
 +			ConfigurationType="2"
 +			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
 +			UseOfMFC="0"
 +			ATLMinimizesCRunTimeLibraryUsage="false"
 +			CharacterSet="1"
 +			>
 +			<Tool
 +				Name="VCPreBuildEventTool"
 +			/>
 +			<Tool
 +				Name="VCCustomBuildTool"
 +			/>
 +			<Tool
 +				Name="VCXMLDataGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCWebServiceProxyGeneratorTool"
 +			/>
 +			<Tool
 +				Name="VCMIDLTool"
 +				PreprocessorDefinitions="NDEBUG"
 +				MkTypLibCompatible="true"
 +				SuppressStartupBanner="true"
 +				TargetEnvironment="1"
 +				TypeLibraryName=".\Release/Console.tlb"
 +				HeaderFileName=""
 +			/>
 +			<Tool
 +				Name="VCCLCompilerTool"
 +				Optimization="3"
 +				InlineFunctionExpansion="2"
 +				AdditionalIncludeDirectories="../include;../ExternalAPI"
 +				PreprocessorDefinitions="_UNICODE;WIN32;NDEBUG;_WINDOWS;_USRDLL;Console_EXPORTS"
 +				StringPooling="true"
 +				RuntimeLibrary="0"
 +				EnableFunctionLevelLinking="true"
 +				UsePrecompiledHeader="2"
 +				PrecompiledHeaderThrough="Commonheaders.h"
 +				PrecompiledHeaderFile=".\Release/Console.pch"
 +				AssemblerListingLocation=".\Release/"
 +				ObjectFile=".\Release/"
 +				ProgramDataBaseFileName=".\Release/"
 +				BrowseInformation="1"
 +				WarningLevel="3"
 +				SuppressStartupBanner="true"
 +				CompileAs="0"
 +			/>
 +			<Tool
 +				Name="VCManagedResourceCompilerTool"
 +			/>
 +			<Tool
 +				Name="VCResourceCompilerTool"
 +				PreprocessorDefinitions="NDEBUG"
 +				Culture="1033"
 +				AdditionalIncludeDirectories="../include;../ExternalAPI"
 +			/>
 +			<Tool
 +				Name="VCPreLinkEventTool"
 +			/>
 +			<Tool
 +				Name="VCLinkerTool"
 +				AdditionalOptions="/ALIGN:4096"
 +				OutputFile="../../bin/release unicode/plugins/Console.dll"
 +				LinkIncremental="1"
 +				SuppressStartupBanner="true"
 +				ProgramDatabaseFile=".\Release/Console.pdb"
 +				GenerateMapFile="true"
 +				OptimizeForWindows98="1"
 +				RandomizedBaseAddress="1"
 +				DataExecutionPrevention="0"
 +				ImportLibrary=".\Release/Console.lib"
 +				TargetMachine="1"
 +			/>
 +			<Tool
 +				Name="VCALinkTool"
 +			/>
 +			<Tool
 +				Name="VCManifestTool"
 +			/>
 +			<Tool
 +				Name="VCXDCMakeTool"
 +			/>
 +			<Tool
 +				Name="VCBscMakeTool"
 +			/>
 +			<Tool
 +				Name="VCFxCopTool"
 +			/>
 +			<Tool
 +				Name="VCAppVerifierTool"
 +			/>
 +			<Tool
 +				Name="VCPostBuildEventTool"
 +			/>
 +		</Configuration>
 +	</Configurations>
 +	<References>
 +	</References>
 +	<Files>
 +		<Filter
 +			Name="Source Files"
 +			Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
 +			>
 +			<File
 +				RelativePath="Commonheaders.c"
 +				>
 +				<FileConfiguration
 +					Name="Debug|Win32"
 +					>
 +					<Tool
 +						Name="VCCLCompilerTool"
 +						Optimization="0"
 +						AdditionalIncludeDirectories="../include;../ExternalAPI"
 +						PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;Console_EXPORTS;$(NoInherit)"
 +						BasicRuntimeChecks="3"
 +						UsePrecompiledHeader="1"
 +						BrowseInformation="1"
 +					/>
 +				</FileConfiguration>
 +				<FileConfiguration
 +					Name="Release|Win32"
 +					>
 +					<Tool
 +						Name="VCCLCompilerTool"
 +						Optimization="2"
 +						AdditionalIncludeDirectories="../include;../ExternalAPI"
 +						PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;Console_EXPORTS;$(NoInherit)"
 +						UsePrecompiledHeader="1"
 +						BrowseInformation="1"
 +					/>
 +				</FileConfiguration>
 +				<FileConfiguration
 +					Name="Debug Unicode|Win32"
 +					>
 +					<Tool
 +						Name="VCCLCompilerTool"
 +						Optimization="0"
 +						AdditionalIncludeDirectories="../include;../ExternalAPI"
 +						BasicRuntimeChecks="3"
 +						UsePrecompiledHeader="1"
 +						BrowseInformation="1"
 +					/>
 +				</FileConfiguration>
 +				<FileConfiguration
 +					Name="Release Unicode|Win32"
 +					>
 +					<Tool
 +						Name="VCCLCompilerTool"
 +						Optimization="2"
 +						AdditionalIncludeDirectories="../include;../ExternalAPI"
 +						UsePrecompiledHeader="1"
 +						BrowseInformation="1"
 +					/>
 +				</FileConfiguration>
 +			</File>
 +			<File
 +				RelativePath="Console.c"
 +				>
 +				<FileConfiguration
 +					Name="Debug|Win32"
 +					>
 +					<Tool
 +						Name="VCCLCompilerTool"
 +						Optimization="0"
 +						AdditionalIncludeDirectories="../include;../ExternalAPI"
 +						PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;Console_EXPORTS;$(NoInherit)"
 +						BasicRuntimeChecks="3"
 +						BrowseInformation="1"
 +					/>
 +				</FileConfiguration>
 +				<FileConfiguration
 +					Name="Release|Win32"
 +					>
 +					<Tool
 +						Name="VCCLCompilerTool"
 +						Optimization="2"
 +						AdditionalIncludeDirectories="../include;../ExternalAPI"
 +						PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;Console_EXPORTS;$(NoInherit)"
 +						BrowseInformation="1"
 +					/>
 +				</FileConfiguration>
 +				<FileConfiguration
 +					Name="Debug Unicode|Win32"
 +					>
 +					<Tool
 +						Name="VCCLCompilerTool"
 +						Optimization="0"
 +						AdditionalIncludeDirectories="../include;../ExternalAPI"
 +						BasicRuntimeChecks="3"
 +						BrowseInformation="1"
 +					/>
 +				</FileConfiguration>
 +				<FileConfiguration
 +					Name="Release Unicode|Win32"
 +					>
 +					<Tool
 +						Name="VCCLCompilerTool"
 +						Optimization="2"
 +						AdditionalIncludeDirectories="../include;../ExternalAPI"
 +						BrowseInformation="1"
 +					/>
 +				</FileConfiguration>
 +			</File>
 +			<File
 +				RelativePath=".\init.c"
 +				>
 +			</File>
 +		</Filter>
 +		<Filter
 +			Name="Header Files"
 +			Filter="h;hpp;hxx;hm;inl"
 +			>
 +			<File
 +				RelativePath="Commonheaders.h"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\resource.h"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\version.h"
 +				>
 +			</File>
 +		</Filter>
 +		<Filter
 +			Name="Resource Files"
 +			Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
 +			>
 +			<File
 +				RelativePath=".\res\btn_dn.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\res\btn_up.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\res\close.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath="Res\console.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath="Res\console_dn.bmp"
 +				>
 +			</File>
 +			<File
 +				RelativePath="Res\console_up.bmp"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\Res\copy.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\Res\delete.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\res\noscroll.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\Res\noscroll3.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\Res\options.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\res\pause.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\res\paused.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath="resource.rc"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\Res\Save.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\res\scroll.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\Res\scroll3.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\res\start.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\res\started.ico"
 +				>
 +			</File>
 +			<File
 +				RelativePath=".\res\working.ico"
 +				>
 +			</File>
 +		</Filter>
 +	</Files>
 +	<Globals>
 +	</Globals>
 +</VisualStudioProject>
 diff --git a/Console/Console.vcxproj b/Console/Console.vcxproj new file mode 100644 index 0000000..83e9903 --- /dev/null +++ b/Console/Console.vcxproj @@ -0,0 +1,608 @@ +<?xml version="1.0" encoding="utf-8"?>
 +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 +  <ItemGroup Label="ProjectConfigurations">
 +    <ProjectConfiguration Include="Debug Unicode|Win32">
 +      <Configuration>Debug Unicode</Configuration>
 +      <Platform>Win32</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Debug Unicode|x64">
 +      <Configuration>Debug Unicode</Configuration>
 +      <Platform>x64</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Debug|Win32">
 +      <Configuration>Debug</Configuration>
 +      <Platform>Win32</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Debug|x64">
 +      <Configuration>Debug</Configuration>
 +      <Platform>x64</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Release Unicode|Win32">
 +      <Configuration>Release Unicode</Configuration>
 +      <Platform>Win32</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Release Unicode|x64">
 +      <Configuration>Release Unicode</Configuration>
 +      <Platform>x64</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Release|Win32">
 +      <Configuration>Release</Configuration>
 +      <Platform>Win32</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Release|x64">
 +      <Configuration>Release</Configuration>
 +      <Platform>x64</Platform>
 +    </ProjectConfiguration>
 +  </ItemGroup>
 +  <PropertyGroup Label="Globals">
 +    <ProjectGuid>{A231E008-2D1A-4F24-95DD-59F56F85A499}</ProjectGuid>
 +    <RootNamespace>Console</RootNamespace>
 +    <SccProjectName>
 +    </SccProjectName>
 +    <SccLocalPath>
 +    </SccLocalPath>
 +  </PropertyGroup>
 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseOfMfc>false</UseOfMfc>
 +    <CharacterSet>Unicode</CharacterSet>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseOfMfc>false</UseOfMfc>
 +    <CharacterSet>Unicode</CharacterSet>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseOfMfc>false</UseOfMfc>
 +    <CharacterSet>Unicode</CharacterSet>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseOfMfc>false</UseOfMfc>
 +    <CharacterSet>Unicode</CharacterSet>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseOfMfc>false</UseOfMfc>
 +    <CharacterSet>MultiByte</CharacterSet>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseOfMfc>false</UseOfMfc>
 +    <CharacterSet>MultiByte</CharacterSet>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseOfMfc>false</UseOfMfc>
 +    <CharacterSet>MultiByte</CharacterSet>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseOfMfc>false</UseOfMfc>
 +    <CharacterSet>MultiByte</CharacterSet>
 +  </PropertyGroup>
 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 +  <ImportGroup Label="ExtensionSettings">
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
 +  </ImportGroup>
 +  <PropertyGroup Label="UserMacros" />
 +  <PropertyGroup>
 +    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">false</LinkIncremental>
 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">false</LinkIncremental>
 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">$(SolutionDir)$(Configuration)/Plugins\</OutDir>
 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">$(SolutionDir)$(Configuration)/Obj/$(ProjectName)\</IntDir>
 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">false</LinkIncremental>
 +    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">false</LinkIncremental>
 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)/Plugins\</OutDir>
 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)/Obj/$(ProjectName)\</IntDir>
 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">$(SolutionDir)$(Configuration)/Plugins\</OutDir>
 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">$(SolutionDir)$(Configuration)/Obj/$(ProjectName)\</IntDir>
 +    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)/Plugins\</OutDir>
 +    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)/Obj/$(ProjectName)\</IntDir>
 +  </PropertyGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 +    <Midl>
 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <MkTypLibCompatible>true</MkTypLibCompatible>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <TargetEnvironment>Win32</TargetEnvironment>
 +      <TypeLibraryName>.\Debug/Console.tlb</TypeLibraryName>
 +      <HeaderFileName>
 +      </HeaderFileName>
 +    </Midl>
 +    <ClCompile>
 +      <Optimization>Disabled</Optimization>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;Console_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
 +      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <PrecompiledHeaderFile>Commonheaders.h</PrecompiledHeaderFile>
 +      <BrowseInformation>true</BrowseInformation>
 +      <WarningLevel>Level3</WarningLevel>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 +      <CompileAs>Default</CompileAs>
 +    </ClCompile>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <Culture>0x0409</Culture>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +    <Link>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <GenerateMapFile>true</GenerateMapFile>
 +      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 +      <DataExecutionPrevention>
 +      </DataExecutionPrevention>
 +      <TargetMachine>MachineX86</TargetMachine>
 +      <AdditionalOptions>
 +      </AdditionalOptions>
 +    </Link>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 +    <Midl>
 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <MkTypLibCompatible>true</MkTypLibCompatible>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <TypeLibraryName>.\Debug/Console.tlb</TypeLibraryName>
 +      <HeaderFileName>
 +      </HeaderFileName>
 +    </Midl>
 +    <ClCompile>
 +      <Optimization>Disabled</Optimization>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;Console_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
 +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <PrecompiledHeaderFile>Commonheaders.h</PrecompiledHeaderFile>
 +      <PrecompiledHeaderOutputFile>.\Debug/Console.pch</PrecompiledHeaderOutputFile>
 +      <AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
 +      <ObjectFileName>.\Debug/</ObjectFileName>
 +      <ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
 +      <BrowseInformation>true</BrowseInformation>
 +      <WarningLevel>Level3</WarningLevel>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 +      <CompileAs>Default</CompileAs>
 +    </ClCompile>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <Culture>0x0409</Culture>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +    <Link>
 +      <OutputFile>../../Bin/Debug/plugins/Console.dll</OutputFile>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <ProgramDatabaseFile>.\Debug/Console.pdb</ProgramDatabaseFile>
 +      <GenerateMapFile>true</GenerateMapFile>
 +      <MapFileName>.\Debug/Console.map</MapFileName>
 +      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 +      <DataExecutionPrevention>
 +      </DataExecutionPrevention>
 +      <ImportLibrary>.\Debug/Console.lib</ImportLibrary>
 +      <AdditionalOptions>
 +      </AdditionalOptions>
 +    </Link>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 +    <Midl>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <MkTypLibCompatible>true</MkTypLibCompatible>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <TargetEnvironment>Win32</TargetEnvironment>
 +      <TypeLibraryName>.\Release/Console.tlb</TypeLibraryName>
 +      <HeaderFileName>
 +      </HeaderFileName>
 +    </Midl>
 +    <ClCompile>
 +      <Optimization>Full</Optimization>
 +      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;Console_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <StringPooling>true</StringPooling>
 +      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 +      <FunctionLevelLinking>true</FunctionLevelLinking>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <PrecompiledHeaderFile>Commonheaders.h</PrecompiledHeaderFile>
 +      <BrowseInformation>true</BrowseInformation>
 +      <WarningLevel>Level3</WarningLevel>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <CompileAs>Default</CompileAs>
 +      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
 +    </ClCompile>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <Culture>0x0409</Culture>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +    <Link>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <GenerateMapFile>true</GenerateMapFile>
 +      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 +      <DataExecutionPrevention>
 +      </DataExecutionPrevention>
 +      <TargetMachine>MachineX86</TargetMachine>
 +      <AdditionalOptions>
 +      </AdditionalOptions>
 +      <OptimizeReferences>true</OptimizeReferences>
 +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 +    </Link>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 +    <Midl>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <MkTypLibCompatible>true</MkTypLibCompatible>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <TypeLibraryName>.\Release/Console.tlb</TypeLibraryName>
 +      <HeaderFileName>
 +      </HeaderFileName>
 +    </Midl>
 +    <ClCompile>
 +      <Optimization>Full</Optimization>
 +      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;Console_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <StringPooling>true</StringPooling>
 +      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
 +      <FunctionLevelLinking>true</FunctionLevelLinking>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <PrecompiledHeaderFile>Commonheaders.h</PrecompiledHeaderFile>
 +      <PrecompiledHeaderOutputFile>.\Release/Console.pch</PrecompiledHeaderOutputFile>
 +      <AssemblerListingLocation>.\Release/</AssemblerListingLocation>
 +      <ObjectFileName>.\Release/</ObjectFileName>
 +      <ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
 +      <BrowseInformation>true</BrowseInformation>
 +      <WarningLevel>Level3</WarningLevel>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <CompileAs>Default</CompileAs>
 +    </ClCompile>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <Culture>0x0409</Culture>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +    <Link>
 +      <OutputFile>../../bin/release/plugins/Console.dll</OutputFile>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <ProgramDatabaseFile>.\Release/Console.pdb</ProgramDatabaseFile>
 +      <GenerateMapFile>true</GenerateMapFile>
 +      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 +      <DataExecutionPrevention>
 +      </DataExecutionPrevention>
 +      <ImportLibrary>.\Release/Console.lib</ImportLibrary>
 +      <AdditionalOptions>
 +      </AdditionalOptions>
 +    </Link>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">
 +    <Midl>
 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <MkTypLibCompatible>true</MkTypLibCompatible>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <TargetEnvironment>Win32</TargetEnvironment>
 +      <TypeLibraryName>.\Debug/Console.tlb</TypeLibraryName>
 +      <HeaderFileName>
 +      </HeaderFileName>
 +    </Midl>
 +    <ClCompile>
 +      <Optimization>Disabled</Optimization>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions>_UNICODE;WIN32;_DEBUG;_WINDOWS;_USRDLL;Console_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
 +      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <PrecompiledHeaderFile>Commonheaders.h</PrecompiledHeaderFile>
 +      <BrowseInformation>true</BrowseInformation>
 +      <WarningLevel>Level3</WarningLevel>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 +      <CompileAs>Default</CompileAs>
 +    </ClCompile>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <Culture>0x0409</Culture>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +    <Link>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <GenerateMapFile>true</GenerateMapFile>
 +      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 +      <DataExecutionPrevention>
 +      </DataExecutionPrevention>
 +      <TargetMachine>MachineX86</TargetMachine>
 +      <AdditionalOptions>
 +      </AdditionalOptions>
 +    </Link>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">
 +    <Midl>
 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <MkTypLibCompatible>true</MkTypLibCompatible>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <TypeLibraryName>.\Debug/Console.tlb</TypeLibraryName>
 +      <HeaderFileName>
 +      </HeaderFileName>
 +    </Midl>
 +    <ClCompile>
 +      <Optimization>Disabled</Optimization>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions>_UNICODE;WIN32;_DEBUG;_WINDOWS;_USRDLL;Console_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
 +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <PrecompiledHeaderFile>Commonheaders.h</PrecompiledHeaderFile>
 +      <PrecompiledHeaderOutputFile>.\Debug/Console.pch</PrecompiledHeaderOutputFile>
 +      <AssemblerListingLocation>.\Debug/</AssemblerListingLocation>
 +      <ObjectFileName>.\Debug/</ObjectFileName>
 +      <ProgramDataBaseFileName>.\Debug/</ProgramDataBaseFileName>
 +      <BrowseInformation>true</BrowseInformation>
 +      <WarningLevel>Level3</WarningLevel>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 +      <CompileAs>Default</CompileAs>
 +    </ClCompile>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <Culture>0x0409</Culture>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +    <Link>
 +      <OutputFile>../../Bin/Debug Unicode/plugins/Console.dll</OutputFile>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <ProgramDatabaseFile>.\Debug/Console.pdb</ProgramDatabaseFile>
 +      <GenerateMapFile>true</GenerateMapFile>
 +      <MapFileName>.\Debug/Console.map</MapFileName>
 +      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 +      <DataExecutionPrevention>
 +      </DataExecutionPrevention>
 +      <ImportLibrary>.\Debug/Console.lib</ImportLibrary>
 +      <AdditionalOptions>
 +      </AdditionalOptions>
 +    </Link>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">
 +    <Midl>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <MkTypLibCompatible>true</MkTypLibCompatible>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <TargetEnvironment>Win32</TargetEnvironment>
 +      <TypeLibraryName>.\Release/Console.tlb</TypeLibraryName>
 +      <HeaderFileName>
 +      </HeaderFileName>
 +    </Midl>
 +    <ClCompile>
 +      <Optimization>Full</Optimization>
 +      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions>_UNICODE;WIN32;NDEBUG;_WINDOWS;_USRDLL;Console_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <StringPooling>true</StringPooling>
 +      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 +      <FunctionLevelLinking>true</FunctionLevelLinking>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <PrecompiledHeaderFile>Commonheaders.h</PrecompiledHeaderFile>
 +      <BrowseInformation>true</BrowseInformation>
 +      <WarningLevel>Level3</WarningLevel>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <CompileAs>Default</CompileAs>
 +      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
 +    </ClCompile>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <Culture>0x0409</Culture>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +    <Link>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <GenerateMapFile>true</GenerateMapFile>
 +      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 +      <DataExecutionPrevention>
 +      </DataExecutionPrevention>
 +      <TargetMachine>MachineX86</TargetMachine>
 +      <AdditionalOptions>
 +      </AdditionalOptions>
 +      <OptimizeReferences>true</OptimizeReferences>
 +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 +    </Link>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">
 +    <Midl>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <MkTypLibCompatible>true</MkTypLibCompatible>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <TypeLibraryName>.\Release/Console.tlb</TypeLibraryName>
 +      <HeaderFileName>
 +      </HeaderFileName>
 +    </Midl>
 +    <ClCompile>
 +      <Optimization>Full</Optimization>
 +      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions>_UNICODE;WIN32;NDEBUG;_WINDOWS;_USRDLL;Console_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <StringPooling>true</StringPooling>
 +      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 +      <FunctionLevelLinking>true</FunctionLevelLinking>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <PrecompiledHeaderFile>Commonheaders.h</PrecompiledHeaderFile>
 +      <PrecompiledHeaderOutputFile>.\Release/Console.pch</PrecompiledHeaderOutputFile>
 +      <AssemblerListingLocation>.\Release/</AssemblerListingLocation>
 +      <ObjectFileName>.\Release/</ObjectFileName>
 +      <ProgramDataBaseFileName>.\Release/</ProgramDataBaseFileName>
 +      <BrowseInformation>true</BrowseInformation>
 +      <WarningLevel>Level3</WarningLevel>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <CompileAs>Default</CompileAs>
 +      <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
 +    </ClCompile>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <Culture>0x0409</Culture>
 +      <AdditionalIncludeDirectories>../include;../ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +    <Link>
 +      <SuppressStartupBanner>true</SuppressStartupBanner>
 +      <ProgramDatabaseFile>.\Release/Console.pdb</ProgramDatabaseFile>
 +      <GenerateMapFile>true</GenerateMapFile>
 +      <RandomizedBaseAddress>false</RandomizedBaseAddress>
 +      <DataExecutionPrevention>
 +      </DataExecutionPrevention>
 +      <ImportLibrary>.\Release/Console.lib</ImportLibrary>
 +      <AdditionalOptions>
 +      </AdditionalOptions>
 +    </Link>
 +  </ItemDefinitionGroup>
 +  <ItemGroup>
 +    <ClCompile Include="Commonheaders.c">
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">Disabled</Optimization>
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">Disabled</Optimization>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">EnableFastChecks</BasicRuntimeChecks>
 +      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">EnableFastChecks</BasicRuntimeChecks>
 +      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">Create</PrecompiledHeader>
 +      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">Create</PrecompiledHeader>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">true</BrowseInformation>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">true</BrowseInformation>
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;Console_EXPORTS</PreprocessorDefinitions>
 +      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;Console_EXPORTS</PreprocessorDefinitions>
 +      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
 +      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks>
 +      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
 +      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</BrowseInformation>
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">MaxSpeed</Optimization>
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">MaxSpeed</Optimization>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">Create</PrecompiledHeader>
 +      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">Create</PrecompiledHeader>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">true</BrowseInformation>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">true</BrowseInformation>
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;Console_EXPORTS</PreprocessorDefinitions>
 +      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;Console_EXPORTS</PreprocessorDefinitions>
 +      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
 +      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</BrowseInformation>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</BrowseInformation>
 +    </ClCompile>
 +    <ClCompile Include="Console.c">
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">Disabled</Optimization>
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">Disabled</Optimization>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">EnableFastChecks</BasicRuntimeChecks>
 +      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">EnableFastChecks</BasicRuntimeChecks>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">true</BrowseInformation>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">true</BrowseInformation>
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;Console_EXPORTS</PreprocessorDefinitions>
 +      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;Console_EXPORTS</PreprocessorDefinitions>
 +      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
 +      <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</BrowseInformation>
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">MaxSpeed</Optimization>
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">MaxSpeed</Optimization>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">true</BrowseInformation>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">true</BrowseInformation>
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
 +      <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;Console_EXPORTS</PreprocessorDefinitions>
 +      <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;Console_EXPORTS</PreprocessorDefinitions>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</BrowseInformation>
 +      <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</BrowseInformation>
 +    </ClCompile>
 +    <ClCompile Include="init.c" />
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ClInclude Include="Commonheaders.h" />
 +    <ClInclude Include="resource.h" />
 +    <ClInclude Include="version.h" />
 +  </ItemGroup>
 +  <ItemGroup>
 +    <None Include="res\btn_dn.ico" />
 +    <None Include="res\btn_up.ico" />
 +    <None Include="res\close.ico" />
 +    <None Include="Res\console.ico" />
 +    <None Include="Res\console_dn.bmp" />
 +    <None Include="Res\console_up.bmp" />
 +    <None Include="Res\copy.ico" />
 +    <None Include="Res\delete.ico" />
 +    <None Include="res\noscroll.ico" />
 +    <None Include="Res\noscroll3.ico" />
 +    <None Include="Res\options.ico" />
 +    <None Include="res\pause.ico" />
 +    <None Include="res\paused.ico" />
 +    <None Include="Res\Save.ico" />
 +    <None Include="res\scroll.ico" />
 +    <None Include="Res\scroll3.ico" />
 +    <None Include="res\start.ico" />
 +    <None Include="res\started.ico" />
 +    <None Include="res\working.ico" />
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ResourceCompile Include="resource.rc" />
 +  </ItemGroup>
 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 +  <ImportGroup Label="ExtensionTargets">
 +  </ImportGroup>
 +</Project>
\ No newline at end of file diff --git a/Console/Console.vcxproj.filters b/Console/Console.vcxproj.filters new file mode 100644 index 0000000..7a841a2 --- /dev/null +++ b/Console/Console.vcxproj.filters @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="utf-8"?>
 +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 +  <ItemGroup>
 +    <Filter Include="Source Files">
 +      <UniqueIdentifier>{94e1a2e5-64bb-4574-a01b-61fbe40e73e2}</UniqueIdentifier>
 +      <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
 +    </Filter>
 +    <Filter Include="Header Files">
 +      <UniqueIdentifier>{a5d1caa4-5b85-489a-bedc-9709b86d7dc0}</UniqueIdentifier>
 +      <Extensions>h;hpp;hxx;hm;inl</Extensions>
 +    </Filter>
 +    <Filter Include="Resource Files">
 +      <UniqueIdentifier>{1e71008e-a4e4-44c1-a0a9-d5fd17cd53f2}</UniqueIdentifier>
 +      <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
 +    </Filter>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ClCompile Include="Commonheaders.c">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="Console.c">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="init.c">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ClInclude Include="Commonheaders.h">
 +      <Filter>Header Files</Filter>
 +    </ClInclude>
 +    <ClInclude Include="resource.h">
 +      <Filter>Header Files</Filter>
 +    </ClInclude>
 +    <ClInclude Include="version.h">
 +      <Filter>Header Files</Filter>
 +    </ClInclude>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <None Include="res\btn_dn.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="res\btn_up.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="res\close.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="Res\console.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="Res\console_dn.bmp">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="Res\console_up.bmp">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="Res\copy.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="Res\delete.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="res\noscroll.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="Res\noscroll3.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="Res\options.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="res\pause.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="res\paused.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="Res\Save.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="res\scroll.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="Res\scroll3.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="res\start.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="res\started.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +    <None Include="res\working.ico">
 +      <Filter>Resource Files</Filter>
 +    </None>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ResourceCompile Include="resource.rc">
 +      <Filter>Resource Files</Filter>
 +    </ResourceCompile>
 +  </ItemGroup>
 +</Project>
\ No newline at end of file diff --git a/Console/Console_history.txt b/Console/Console_history.txt new file mode 100644 index 0000000..0801dc0 --- /dev/null +++ b/Console/Console_history.txt @@ -0,0 +1,174 @@ +PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND...
 +ONLY MORAL SUPPORT IN SPECIAL CASES CAN BE PROVIDED 8-)
 +--------------------------------------------------------------------------------
 +
 +v7.2
 +
 +[+] console hot restart (to apply new options)
 +[+] always show at start option
 +[*] other small changes
 +
 +
 +v7.1
 +
 +[+] switch tabs with CTRL+Left/Right
 +[+] log size limitation
 +[+] icons in log
 +[+] event separation with empty line
 +[-] create "(NULL)" tab only on demand
 +[*] dumping optimization
 +[*] small changes to compile in VC6
 +
 +
 +v7.0
 +
 +[+] tabbed mode support (tab for every NETLIB user)
 +[+] toolbar button for clist modern
 +[+] options page
 +[*] other small changes
 +
 +
 +v6.6
 +
 +[+] logging pause button
 +[*] log scrolling hotkey was changed to Ctrl+Q
 +[*] more translatable strings
 +[-] fixed tooltips on buttons
 +
 +
 +v6.5
 +
 +[+] global hotkey to show/hide console (Win+C by default)
 +[+] common shortcuts in console (Ctrl+C/S/D/A/O, Del)
 +[*] trying to hook netlib log on load
 +[*] hi-res console icon
 +
 +
 +v6.4
 +
 +[-] some bugfixes (unicode version only)
 +
 +
 +v6.3
 +
 +[!] NETLIB was removed. using netlib log hook.
 +[+] unicode support
 +[+] ansi / utf8 autodetection and conversion
 +[+] faster startup/shutdown/dumping
 +[+] variable line wrap length
 +
 +
 +v6.0 - 6.2
 +
 +[!] internal builds
 +
 +
 +v5.4
 +
 +[-] workaround for "\r" in console window
 +[*] small speed improvements in netlib log dump
 +[*] merge with SVN (netlib module)
 +
 +
 +v5.3
 +
 +[*] PluginInfoEx was added, some code was replaced with core services (thanx Jazzy$)
 +[*] merge with SVN (netlib module)
 +
 +
 +v5.2
 +
 +[*] merge with SVN (netlib module)
 +[*] fix for crash on exit (miranda 0.7 core issue)
 +[+] save and restore console window position
 +
 +
 +v5.1
 +
 +[-] filter settings were not saved
 +
 +
 +v5.0
 +
 +[+] buttons to copy/delete/save log, open options
 +[+] ability to select colors and font (fontservice needed)
 +[*] long lines (>90 chars) are wraped
 +[+] list-view auto width
 +[*] destoying all services before unload to prevent crashes
 +
 +
 +v4.0
 +
 +[*] merged with lastest netlib
 +
 +
 +v3.3
 +
 +[-] packet dumps still were not shown in some cases
 +[+] small optimizations
 +
 +
 +v3.2
 +
 +[-] fixed huge memory leak
 +[-] packet dumps were not shown if logging to file was off
 +
 +
 +v3.1
 +
 +[!] listview control console window. richedit is too slow
 +
 +
 +v3.0
 +
 +[!] richedit control console window!
 +
 +v2.0
 +
 +[?]
 +
 +v1.9
 +
 +[+] abitity to remember last console state
 +
 +v1.8
 +
 +[+] profile path is shown in console title
 +
 +v1.7
 +
 +[?]
 +
 +
 +v1.6
 +
 +[-] fixed AV on msg from NULL (thanx sh8an)
 +[*] attempt to fix windows shutdown issues with opened miranda
 +
 +v1.5
 +
 +[+] ability to log only custom protocols (netlibusers)
 +[-] console window startup workaround to prevent crashes and other bugs
 +
 +v1.4
 +
 +[+] console window writes log even in hidden state (if Log to Console is checked)
 +[+] ability to hide/show console from main menu and toptoolbar button
 +[+] open outgoing connections with delay is now optional
 +[*] console startup code was rewritten
 +[-] pressing Ctrl+C or Ctrl+Break in console window do not close Miranda any more
 +[-] now console window always appears on top
 +
 +v1.3
 +
 +[+] console window from 0.3x netlib
 +[+] console buffer is 100 times larger
 +[+] console text convertion to OEM codepage
 +[-] close button now always disabled
 +[*] some changes to unloading
 +
 +--------------------------------------------------------------------------------
 +[!] important note
 +[+] added feature
 +[*] improved/changed feature
 +[-] bug fixed
 diff --git a/Console/Console_readme.txt b/Console/Console_readme.txt new file mode 100644 index 0000000..6d66f9b --- /dev/null +++ b/Console/Console_readme.txt @@ -0,0 +1,21 @@ +Console window plugin for Netlib logging.
 +
 +It is designed for Miranda developers & advanced users! 8-)
 +
 +
 +v7 introduced tabs support. Single window mode is also avaliable.
 +It can be switched in options. Icons and other stuff is avaliable.
 +
 +v6 is based on the code of v5 but without NETLIB. it uses new netlib log hook instead.
 +Netlib filters are still in Log Options but they are not part of console any more :).
 +
 +Also:
 ++ faster startup/shutdown/dumping
 ++ unicode support
 ++ ansi / utf8 autodetection and conversion
 ++ variable line wrap length
 +
 +Console window can be opened/closed with:
 + - (Top)ToolBar button
 + - MainMenu->Help->Show/Hide Console
 + - Hotkey using service "Console/Show/Hide"
\ No newline at end of file diff --git a/Console/commonheaders.c b/Console/commonheaders.c new file mode 100644 index 0000000..cbfb79d --- /dev/null +++ b/Console/commonheaders.c @@ -0,0 +1,24 @@ +/*
 +
 +Miranda IM: the free IM client for Microsoft* Windows*
 +
 +Copyright 2000-2008 Miranda ICQ/IM project,
 +all portions of this codebase are copyrighted to the people
 +listed in contributors.txt.
 +
 +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; if not, write to the Free Software
 +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 +*/
 +
 +#include "commonheaders.h"
\ No newline at end of file diff --git a/Console/commonheaders.h b/Console/commonheaders.h new file mode 100644 index 0000000..05a5d96 --- /dev/null +++ b/Console/commonheaders.h @@ -0,0 +1,69 @@ +/*
 +
 +Miranda IM: the free IM client for Microsoft* Windows*
 +
 +Copyright 2000-2008 Miranda ICQ/IM project,
 +all portions of this codebase are copyrighted to the people
 +listed in contributors.txt.
 +
 +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; if not, write to the Free Software
 +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 +*/
 +
 +
 +#define _WIN32_WINNT 0x0501
 +
 +#pragma comment( lib, "comctl32.lib")
 +
 +#include <windows.h>
 +#include <stdio.h>
 +#include <time.h>
 +#include <stddef.h>
 +#include <process.h>
 +#include <commctrl.h>
 +#include <Richedit.h>
 +#include <malloc.h>
 +#include <tchar.h>
 +#include <io.h>
 +#include <fcntl.h>
 +
 +#define MIRANDA_VER 0x0800
 +
 +#include <newpluginapi.h>
 +#include <win2k.h>
 +#include <m_system.h>
 +#include <m_utils.h>
 +#include <m_netlib.h>
 +#include <m_database.h>
 +#include <m_options.h>
 +#include <m_langpack.h>
 +#include <m_clui.h>
 +#include <m_clist.h>
 +#include <m_langpack.h>
 +#include <m_button.h>
 +#include <m_fontservice.h>
 +#include <m_hotkeys.h>
 +#include <m_icolib.h>
 +#include "m_toolbar.h"
 +#include "m_toptoolbar.h"
 +#include "resource.h"
 +
 +#include "version.h"
 +
 +HINSTANCE hInst;
 +
 +void InitConsole();
 +void ShutdownConsole();
 +
 +#define MS_NETLIB_LOGWIN "Netlib/Log/Win"
 diff --git a/Console/gpl.txt b/Console/gpl.txt new file mode 100644 index 0000000..45645b4 --- /dev/null +++ b/Console/gpl.txt @@ -0,0 +1,340 @@ +		    GNU GENERAL PUBLIC LICENSE
 +		       Version 2, June 1991
 +
 + Copyright (C) 1989, 1991 Free Software Foundation, Inc.
 +                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 + Everyone is permitted to copy and distribute verbatim copies
 + of this license document, but changing it is not allowed.
 +
 +			    Preamble
 +
 +  The licenses for most software are designed to take away your
 +freedom to share and change it.  By contrast, the GNU General Public
 +License is intended to guarantee your freedom to share and change free
 +software--to make sure the software is free for all its users.  This
 +General Public License applies to most of the Free Software
 +Foundation's software and to any other program whose authors commit to
 +using it.  (Some other Free Software Foundation software is covered by
 +the GNU Library General Public License instead.)  You can apply it to
 +your programs, too.
 +
 +  When we speak of free software, we are referring to freedom, not
 +price.  Our General Public Licenses are designed to make sure that you
 +have the freedom to distribute copies of free software (and charge for
 +this service if you wish), that you receive source code or can get it
 +if you want it, that you can change the software or use pieces of it
 +in new free programs; and that you know you can do these things.
 +
 +  To protect your rights, we need to make restrictions that forbid
 +anyone to deny you these rights or to ask you to surrender the rights.
 +These restrictions translate to certain responsibilities for you if you
 +distribute copies of the software, or if you modify it.
 +
 +  For example, if you distribute copies of such a program, whether
 +gratis or for a fee, you must give the recipients all the rights that
 +you have.  You must make sure that they, too, receive or can get the
 +source code.  And you must show them these terms so they know their
 +rights.
 +
 +  We protect your rights with two steps: (1) copyright the software, and
 +(2) offer you this license which gives you legal permission to copy,
 +distribute and/or modify the software.
 +
 +  Also, for each author's protection and ours, we want to make certain
 +that everyone understands that there is no warranty for this free
 +software.  If the software is modified by someone else and passed on, we
 +want its recipients to know that what they have is not the original, so
 +that any problems introduced by others will not reflect on the original
 +authors' reputations.
 +
 +  Finally, any free program is threatened constantly by software
 +patents.  We wish to avoid the danger that redistributors of a free
 +program will individually obtain patent licenses, in effect making the
 +program proprietary.  To prevent this, we have made it clear that any
 +patent must be licensed for everyone's free use or not licensed at all.
 +
 +  The precise terms and conditions for copying, distribution and
 +modification follow.
 +
 +		    GNU GENERAL PUBLIC LICENSE
 +   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 +
 +  0. This License applies to any program or other work which contains
 +a notice placed by the copyright holder saying it may be distributed
 +under the terms of this General Public License.  The "Program", below,
 +refers to any such program or work, and a "work based on the Program"
 +means either the Program or any derivative work under copyright law:
 +that is to say, a work containing the Program or a portion of it,
 +either verbatim or with modifications and/or translated into another
 +language.  (Hereinafter, translation is included without limitation in
 +the term "modification".)  Each licensee is addressed as "you".
 +
 +Activities other than copying, distribution and modification are not
 +covered by this License; they are outside its scope.  The act of
 +running the Program is not restricted, and the output from the Program
 +is covered only if its contents constitute a work based on the
 +Program (independent of having been made by running the Program).
 +Whether that is true depends on what the Program does.
 +
 +  1. You may copy and distribute verbatim copies of the Program's
 +source code as you receive it, in any medium, provided that you
 +conspicuously and appropriately publish on each copy an appropriate
 +copyright notice and disclaimer of warranty; keep intact all the
 +notices that refer to this License and to the absence of any warranty;
 +and give any other recipients of the Program a copy of this License
 +along with the Program.
 +
 +You may charge a fee for the physical act of transferring a copy, and
 +you may at your option offer warranty protection in exchange for a fee.
 +
 +  2. You may modify your copy or copies of the Program or any portion
 +of it, thus forming a work based on the Program, and copy and
 +distribute such modifications or work under the terms of Section 1
 +above, provided that you also meet all of these conditions:
 +
 +    a) You must cause the modified files to carry prominent notices
 +    stating that you changed the files and the date of any change.
 +
 +    b) You must cause any work that you distribute or publish, that in
 +    whole or in part contains or is derived from the Program or any
 +    part thereof, to be licensed as a whole at no charge to all third
 +    parties under the terms of this License.
 +
 +    c) If the modified program normally reads commands interactively
 +    when run, you must cause it, when started running for such
 +    interactive use in the most ordinary way, to print or display an
 +    announcement including an appropriate copyright notice and a
 +    notice that there is no warranty (or else, saying that you provide
 +    a warranty) and that users may redistribute the program under
 +    these conditions, and telling the user how to view a copy of this
 +    License.  (Exception: if the Program itself is interactive but
 +    does not normally print such an announcement, your work based on
 +    the Program is not required to print an announcement.)
 +
 +These requirements apply to the modified work as a whole.  If
 +identifiable sections of that work are not derived from the Program,
 +and can be reasonably considered independent and separate works in
 +themselves, then this License, and its terms, do not apply to those
 +sections when you distribute them as separate works.  But when you
 +distribute the same sections as part of a whole which is a work based
 +on the Program, the distribution of the whole must be on the terms of
 +this License, whose permissions for other licensees extend to the
 +entire whole, and thus to each and every part regardless of who wrote it.
 +
 +Thus, it is not the intent of this section to claim rights or contest
 +your rights to work written entirely by you; rather, the intent is to
 +exercise the right to control the distribution of derivative or
 +collective works based on the Program.
 +
 +In addition, mere aggregation of another work not based on the Program
 +with the Program (or with a work based on the Program) on a volume of
 +a storage or distribution medium does not bring the other work under
 +the scope of this License.
 +
 +  3. You may copy and distribute the Program (or a work based on it,
 +under Section 2) in object code or executable form under the terms of
 +Sections 1 and 2 above provided that you also do one of the following:
 +
 +    a) Accompany it with the complete corresponding machine-readable
 +    source code, which must be distributed under the terms of Sections
 +    1 and 2 above on a medium customarily used for software interchange; or,
 +
 +    b) Accompany it with a written offer, valid for at least three
 +    years, to give any third party, for a charge no more than your
 +    cost of physically performing source distribution, a complete
 +    machine-readable copy of the corresponding source code, to be
 +    distributed under the terms of Sections 1 and 2 above on a medium
 +    customarily used for software interchange; or,
 +
 +    c) Accompany it with the information you received as to the offer
 +    to distribute corresponding source code.  (This alternative is
 +    allowed only for noncommercial distribution and only if you
 +    received the program in object code or executable form with such
 +    an offer, in accord with Subsection b above.)
 +
 +The source code for a work means the preferred form of the work for
 +making modifications to it.  For an executable work, complete source
 +code means all the source code for all modules it contains, plus any
 +associated interface definition files, plus the scripts used to
 +control compilation and installation of the executable.  However, as a
 +special exception, the source code distributed need not include
 +anything that is normally distributed (in either source or binary
 +form) with the major components (compiler, kernel, and so on) of the
 +operating system on which the executable runs, unless that component
 +itself accompanies the executable.
 +
 +If distribution of executable or object code is made by offering
 +access to copy from a designated place, then offering equivalent
 +access to copy the source code from the same place counts as
 +distribution of the source code, even though third parties are not
 +compelled to copy the source along with the object code.
 +
 +  4. You may not copy, modify, sublicense, or distribute the Program
 +except as expressly provided under this License.  Any attempt
 +otherwise to copy, modify, sublicense or distribute the Program is
 +void, and will automatically terminate your rights under this License.
 +However, parties who have received copies, or rights, from you under
 +this License will not have their licenses terminated so long as such
 +parties remain in full compliance.
 +
 +  5. You are not required to accept this License, since you have not
 +signed it.  However, nothing else grants you permission to modify or
 +distribute the Program or its derivative works.  These actions are
 +prohibited by law if you do not accept this License.  Therefore, by
 +modifying or distributing the Program (or any work based on the
 +Program), you indicate your acceptance of this License to do so, and
 +all its terms and conditions for copying, distributing or modifying
 +the Program or works based on it.
 +
 +  6. Each time you redistribute the Program (or any work based on the
 +Program), the recipient automatically receives a license from the
 +original licensor to copy, distribute or modify the Program subject to
 +these terms and conditions.  You may not impose any further
 +restrictions on the recipients' exercise of the rights granted herein.
 +You are not responsible for enforcing compliance by third parties to
 +this License.
 +
 +  7. If, as a consequence of a court judgment or allegation of patent
 +infringement or for any other reason (not limited to patent issues),
 +conditions are imposed on you (whether by court order, agreement or
 +otherwise) that contradict the conditions of this License, they do not
 +excuse you from the conditions of this License.  If you cannot
 +distribute so as to satisfy simultaneously your obligations under this
 +License and any other pertinent obligations, then as a consequence you
 +may not distribute the Program at all.  For example, if a patent
 +license would not permit royalty-free redistribution of the Program by
 +all those who receive copies directly or indirectly through you, then
 +the only way you could satisfy both it and this License would be to
 +refrain entirely from distribution of the Program.
 +
 +If any portion of this section is held invalid or unenforceable under
 +any particular circumstance, the balance of the section is intended to
 +apply and the section as a whole is intended to apply in other
 +circumstances.
 +
 +It is not the purpose of this section to induce you to infringe any
 +patents or other property right claims or to contest validity of any
 +such claims; this section has the sole purpose of protecting the
 +integrity of the free software distribution system, which is
 +implemented by public license practices.  Many people have made
 +generous contributions to the wide range of software distributed
 +through that system in reliance on consistent application of that
 +system; it is up to the author/donor to decide if he or she is willing
 +to distribute software through any other system and a licensee cannot
 +impose that choice.
 +
 +This section is intended to make thoroughly clear what is believed to
 +be a consequence of the rest of this License.
 +
 +  8. If the distribution and/or use of the Program is restricted in
 +certain countries either by patents or by copyrighted interfaces, the
 +original copyright holder who places the Program under this License
 +may add an explicit geographical distribution limitation excluding
 +those countries, so that distribution is permitted only in or among
 +countries not thus excluded.  In such case, this License incorporates
 +the limitation as if written in the body of this License.
 +
 +  9. The Free Software Foundation may publish revised and/or new versions
 +of the General Public License from time to time.  Such new versions will
 +be similar in spirit to the present version, but may differ in detail to
 +address new problems or concerns.
 +
 +Each version is given a distinguishing version number.  If the Program
 +specifies a version number of this License which applies to it and "any
 +later version", you have the option of following the terms and conditions
 +either of that version or of any later version published by the Free
 +Software Foundation.  If the Program does not specify a version number of
 +this License, you may choose any version ever published by the Free Software
 +Foundation.
 +
 +  10. If you wish to incorporate parts of the Program into other free
 +programs whose distribution conditions are different, write to the author
 +to ask for permission.  For software which is copyrighted by the Free
 +Software Foundation, write to the Free Software Foundation; we sometimes
 +make exceptions for this.  Our decision will be guided by the two goals
 +of preserving the free status of all derivatives of our free software and
 +of promoting the sharing and reuse of software generally.
 +
 +			    NO WARRANTY
 +
 +  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
 +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
 +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
 +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
 +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
 +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
 +REPAIR OR CORRECTION.
 +
 +  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
 +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
 +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
 +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
 +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
 +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 +POSSIBILITY OF SUCH DAMAGES.
 +
 +		     END OF TERMS AND CONDITIONS
 +
 +	    How to Apply These Terms to Your New Programs
 +
 +  If you develop a new program, and you want it to be of the greatest
 +possible use to the public, the best way to achieve this is to make it
 +free software which everyone can redistribute and change under these terms.
 +
 +  To do so, attach the following notices to the program.  It is safest
 +to attach them to the start of each source file to most effectively
 +convey the exclusion of warranty; and each file should have at least
 +the "copyright" line and a pointer to where the full notice is found.
 +
 +    <one line to give the program's name and a brief idea of what it does.>
 +    Copyright (C) <year>  <name of author>
 +
 +    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; if not, write to the Free Software
 +    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 +
 +
 +Also add information on how to contact you by electronic and paper mail.
 +
 +If the program is interactive, make it output a short notice like this
 +when it starts in an interactive mode:
 +
 +    Gnomovision version 69, Copyright (C) year name of author
 +    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
 +    This is free software, and you are welcome to redistribute it
 +    under certain conditions; type `show c' for details.
 +
 +The hypothetical commands `show w' and `show c' should show the appropriate
 +parts of the General Public License.  Of course, the commands you use may
 +be called something other than `show w' and `show c'; they could even be
 +mouse-clicks or menu items--whatever suits your program.
 +
 +You should also get your employer (if you work as a programmer) or your
 +school, if any, to sign a "copyright disclaimer" for the program, if
 +necessary.  Here is a sample; alter the names:
 +
 +  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
 +  `Gnomovision' (which makes passes at compilers) written by James Hacker.
 +
 +  <signature of Ty Coon>, 1 April 1989
 +  Ty Coon, President of Vice
 +
 +This General Public License does not permit incorporating your program into
 +proprietary programs.  If your program is a subroutine library, you may
 +consider it more useful to permit linking proprietary applications with the
 +library.  If this is what you want to do, use the GNU Library General
 +Public License instead of this License.
 diff --git a/Console/init.c b/Console/init.c new file mode 100644 index 0000000..56c1dd4 --- /dev/null +++ b/Console/init.c @@ -0,0 +1,87 @@ +/*
 +
 +Miranda IM: the free IM client for Microsoft* Windows*
 +
 +Copyright 2000-2008 Miranda ICQ/IM project,
 +all portions of this codebase are copyrighted to the people
 +listed in contributors.txt.
 +
 +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; if not, write to the Free Software
 +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 +*/
 +
 +#include "commonheaders.h"
 +
 +PLUGINLINK *pluginLink;
 +DWORD mirandaVer;
 +
 +
 +PLUGININFOEX pluginInfoEx={
 +	sizeof(PLUGININFOEX),
 +	__PLUGIN_NAME,
 +	__VERSION_DWORD,
 +	__PLUGIN_LONGDESC,
 +	__PLUGIN_AUTHOR,
 +	__PLUGIN_EMAIL,
 +	__PLUGIN_RIGHTS,
 +	__PLUGIN_URL,
 +	UNICODE_AWARE,
 +	0,
 +	MIID_CONSOLE
 +};
 +
 +
 +BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
 +{
 +	hInst = hinstDLL;
 +	return TRUE;
 +}
 +
 +////////////////////////////////////////////////////////////////////////////////
 +
 +__declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion)
 +{
 +	mirandaVer = mirandaVersion;
 +	return &pluginInfoEx;
 +}
 +
 +// we implement service mode interface
 +static const MUUID interfaces[] = {MIID_LOGWINDOW, MIID_LAST};
 +__declspec(dllexport) const MUUID* MirandaPluginInterfaces(void)
 +{
 +	return interfaces;
 +}
 +
 +////////////////////////////////////////////////////////////////////////////////
 +
 +int __declspec(dllexport) Load(PLUGINLINK *link)
 +{
 +	pluginLink = link;
 +
 +	if (mirandaVer < PLUGIN_MAKE_VERSION(0,8,0,3))
 +		return -1;
 +	else
 +	{
 +		InitCommonControls();
 +		InitConsole();
 +		return 0;
 +	}
 +}
 +
 +
 +int __declspec(dllexport) Unload(void)
 +{
 +    ShutdownConsole();
 +	return 0;
 +}
 diff --git a/Console/res/arrow.ico b/Console/res/arrow.ico Binary files differnew file mode 100644 index 0000000..56d058b --- /dev/null +++ b/Console/res/arrow.ico diff --git a/Console/res/btn_dn.ico b/Console/res/btn_dn.ico Binary files differnew file mode 100644 index 0000000..f86cdc6 --- /dev/null +++ b/Console/res/btn_dn.ico diff --git a/Console/res/btn_up.ico b/Console/res/btn_up.ico Binary files differnew file mode 100644 index 0000000..d885ea0 --- /dev/null +++ b/Console/res/btn_up.ico diff --git a/Console/res/close.ico b/Console/res/close.ico Binary files differnew file mode 100644 index 0000000..81237d0 --- /dev/null +++ b/Console/res/close.ico diff --git a/Console/res/close2.ico b/Console/res/close2.ico Binary files differnew file mode 100644 index 0000000..7e9bd8a --- /dev/null +++ b/Console/res/close2.ico diff --git a/Console/res/console.ico b/Console/res/console.ico Binary files differnew file mode 100644 index 0000000..7252e62 --- /dev/null +++ b/Console/res/console.ico diff --git a/Console/res/console_dn.bmp b/Console/res/console_dn.bmp Binary files differnew file mode 100644 index 0000000..33bb07c --- /dev/null +++ b/Console/res/console_dn.bmp diff --git a/Console/res/console_up.bmp b/Console/res/console_up.bmp Binary files differnew file mode 100644 index 0000000..2cdbb8d --- /dev/null +++ b/Console/res/console_up.bmp diff --git a/Console/res/copy.ico b/Console/res/copy.ico Binary files differnew file mode 100644 index 0000000..c27f61f --- /dev/null +++ b/Console/res/copy.ico diff --git a/Console/res/delete.ico b/Console/res/delete.ico Binary files differnew file mode 100644 index 0000000..7d931ad --- /dev/null +++ b/Console/res/delete.ico diff --git a/Console/res/empty.ico b/Console/res/empty.ico Binary files differnew file mode 100644 index 0000000..567bbe8 --- /dev/null +++ b/Console/res/empty.ico diff --git a/Console/res/in.ico b/Console/res/in.ico Binary files differnew file mode 100644 index 0000000..ceda4e6 --- /dev/null +++ b/Console/res/in.ico diff --git a/Console/res/info.ico b/Console/res/info.ico Binary files differnew file mode 100644 index 0000000..bf6ada7 --- /dev/null +++ b/Console/res/info.ico diff --git a/Console/res/noscroll.ico b/Console/res/noscroll.ico Binary files differnew file mode 100644 index 0000000..76c97c8 --- /dev/null +++ b/Console/res/noscroll.ico diff --git a/Console/res/options.ico b/Console/res/options.ico Binary files differnew file mode 100644 index 0000000..2dbffa5 --- /dev/null +++ b/Console/res/options.ico diff --git a/Console/res/out.ico b/Console/res/out.ico Binary files differnew file mode 100644 index 0000000..96425d3 --- /dev/null +++ b/Console/res/out.ico diff --git a/Console/res/pause.ico b/Console/res/pause.ico Binary files differnew file mode 100644 index 0000000..6e177a1 --- /dev/null +++ b/Console/res/pause.ico diff --git a/Console/res/paused.ico b/Console/res/paused.ico Binary files differnew file mode 100644 index 0000000..2d077bd --- /dev/null +++ b/Console/res/paused.ico diff --git a/Console/res/save.ico b/Console/res/save.ico Binary files differnew file mode 100644 index 0000000..4bb07fb --- /dev/null +++ b/Console/res/save.ico diff --git a/Console/res/scroll.ico b/Console/res/scroll.ico Binary files differnew file mode 100644 index 0000000..abf4595 --- /dev/null +++ b/Console/res/scroll.ico diff --git a/Console/res/start.ico b/Console/res/start.ico Binary files differnew file mode 100644 index 0000000..9272803 --- /dev/null +++ b/Console/res/start.ico diff --git a/Console/res/started.ico b/Console/res/started.ico Binary files differnew file mode 100644 index 0000000..3bc0da2 --- /dev/null +++ b/Console/res/started.ico diff --git a/Console/resource.h b/Console/resource.h new file mode 100644 index 0000000..e0b9ed2 --- /dev/null +++ b/Console/resource.h @@ -0,0 +1,58 @@ +//{{NO_DEPENDENCIES}}
 +// Microsoft Visual C++ generated include file.
 +// Used by resource.rc
 +//
 +#define IDB_CONSOLE_UP                  100
 +#define IDB_CONSOLE_DOWN                101
 +#define IDD_MSG                         111
 +#define IDD_CONSOLE                     112
 +#define IDD_LOG                         113
 +#define IDD_OPTIONS                     114
 +#define IDI_COPY                        402
 +#define IDI_NOSCROLL                    403
 +#define IDI_SCROLL                      404
 +#define IDI_SAVE                        405
 +#define IDI_DELETE                      406
 +#define IDI_OPTIONS                     407
 +#define IDI_PAUSED                      408
 +#define IDI_STARTED                     409
 +#define IDI_BTN_UP                      410
 +#define IDI_BTN_DN                      411
 +#define IDI_CLOSE                       412
 +#define IDI_START                       413
 +#define IDI_PAUSE                       414
 +#define IDI_IN                          415
 +#define IDI_OUT                         416
 +#define IDI_ARROW                       417
 +#define IDI_INFO                        418
 +#define IDI_EMPTY                       419
 +#define IDC_TABS                        1000
 +#define IDC_LIST                        1001
 +#define IDC_SAVE                        1002
 +#define IDC_PAUSE                       1003
 +#define IDC_SCROLL                      1004
 +#define IDC_COPY                        1005
 +#define IDC_DELETE                      1006
 +#define IDC_OPTIONS                     1007
 +#define IDI_CONSOLE                     1008
 +#define IDC_CLOSE                       1009
 +#define IDC_PAUSEALL                    1010
 +#define IDC_STARTALL                    1011
 +#define IDC_SINGLE                      1012
 +#define IDC_WRAP                        1013
 +#define IDC_SHOWICONS                   1014
 +#define IDC_SEPARATOR                   1015
 +#define IDC_LIMIT                       1016
 +#define IDC_START                       1017
 +#define IDC_RESTART                     1018
 +
 +// Next default values for new objects
 +//
 +#ifdef APSTUDIO_INVOKED
 +#ifndef APSTUDIO_READONLY_SYMBOLS
 +#define _APS_NEXT_RESOURCE_VALUE        115
 +#define _APS_NEXT_COMMAND_VALUE         40000
 +#define _APS_NEXT_CONTROL_VALUE         1019
 +#define _APS_NEXT_SYMED_VALUE           102
 +#endif
 +#endif
 diff --git a/Console/resource.rc b/Console/resource.rc new file mode 100644 index 0000000..d6f054e --- /dev/null +++ b/Console/resource.rc @@ -0,0 +1,223 @@ +// Microsoft Visual C++ generated resource script.
 +//
 +#include "resource.h"
 +
 +#define APSTUDIO_READONLY_SYMBOLS
 +/////////////////////////////////////////////////////////////////////////////
 +//
 +// Generated from the TEXTINCLUDE 2 resource.
 +//
 +#include <windows.h>
 +#include <winres.h>
 +#include <tchar.h>
 +#include <m_button.h>
 +#include <version.h>
 +/////////////////////////////////////////////////////////////////////////////
 +#undef APSTUDIO_READONLY_SYMBOLS
 +
 +/////////////////////////////////////////////////////////////////////////////
 +// English (U.S.) resources
 +
 +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
 +#ifdef _WIN32
 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 +#pragma code_page(1252)
 +#endif //_WIN32
 +
 +/////////////////////////////////////////////////////////////////////////////
 +//
 +// Dialog
 +//
 +
 +IDD_CONSOLE DIALOGEX 0, 0, 335, 257
 +STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX |
 +    WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
 +CAPTION "Console                                    "
 +FONT 8, "MS Shell Dlg", 0, 0, 0x1
 +BEGIN
 +    CONTROL         "",IDC_TABS,"SysTabControl32",TCS_FOCUSNEVER |
 +                    WS_CLIPSIBLINGS | WS_TABSTOP,0,0,335,257
 +END
 +
 +IDD_LOG DIALOGEX 0, 0, 335, 257
 +STYLE DS_SETFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
 +FONT 10, "Courier", 0, 0, 0x1
 +BEGIN
 +    CONTROL         "List1",IDC_LIST,"SysListView32",LVS_REPORT |
 +                    LVS_SHAREIMAGELISTS | LVS_NOCOLUMNHEADER |
 +                    LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,0,18,335,239
 +    CONTROL         "&S",IDC_SAVE,"MButtonClass",WS_TABSTOP,0,1,14,16,
 +                    0x18000000L
 +    CONTROL         "&P",IDC_PAUSE,"MButtonClass",WS_TABSTOP,16,1,14,16,
 +                    0x18000000L
 +    CONTROL         "&Q",IDC_SCROLL,"MButtonClass",WS_TABSTOP,32,1,14,16,
 +                    0x18000000L
 +    CONTROL         "&C",IDC_COPY,"MButtonClass",WS_TABSTOP,48,1,14,16,
 +                    0x18000000L
 +    CONTROL         "&D",IDC_DELETE,"MButtonClass",WS_TABSTOP,64,1,14,16,
 +                    0x18000000L
 +    CONTROL         "&O",IDC_OPTIONS,"MButtonClass",WS_TABSTOP,80,1,14,16,
 +                    0x18000000L
 +    CONTROL         "",IDC_STARTALL,"MButtonClass",WS_TABSTOP,278,1,14,16,
 +                    0x18000000L
 +    CONTROL         "",IDC_PAUSEALL,"MButtonClass",WS_TABSTOP,294,1,14,16,
 +                    0x18000000L
 +    CONTROL         "&W",IDC_CLOSE,"MButtonClass",WS_TABSTOP,320,1,14,16,
 +                    0x18000000L
 +END
 +
 +IDD_OPTIONS DIALOGEX 0, 0, 314, 239
 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE
 +EXSTYLE WS_EX_CONTROLPARENT
 +FONT 8, "MS Shell Dlg", 0, 0, 0x1
 +BEGIN
 +    CONTROL         "Single window mode*",IDC_SINGLE,"Button",
 +                    BS_AUTOCHECKBOX | WS_TABSTOP,8,9,297,10
 +    CONTROL         "Show icons in log*",IDC_SHOWICONS,"Button",
 +                    BS_AUTOCHECKBOX | WS_TABSTOP,8,24,297,10
 +    CONTROL         "New lines between events*",IDC_SEPARATOR,"Button",
 +                    BS_AUTOCHECKBOX | WS_TABSTOP,8,39,297,10
 +    CONTROL         "Always show at start",IDC_START,"Button",
 +                    BS_AUTOCHECKBOX | WS_TABSTOP,8,54,297,10
 +    EDITTEXT        IDC_WRAP,8,69,23,11,ES_RIGHT | ES_NUMBER
 +    EDITTEXT        IDC_LIMIT,8,86,59,11,ES_RIGHT | ES_NUMBER
 +    LTEXT           "Lines wrap length [25-255]",IDC_STATIC,35,70,272,10
 +    LTEXT           "Log size limit [1 000 - 1 000 000 lines]",IDC_STATIC,71,
 +                    86,236,10
 +    LTEXT           "* Restart needed",IDC_STATIC,8,106,296,10
 +    PUSHBUTTON      "Save settings and restart console",IDC_RESTART,12,129,
 +                    287,17
 +END
 +
 +
 +#ifdef APSTUDIO_INVOKED
 +/////////////////////////////////////////////////////////////////////////////
 +//
 +// TEXTINCLUDE
 +//
 +
 +1 TEXTINCLUDE
 +BEGIN
 +    "resource.h\0"
 +END
 +
 +2 TEXTINCLUDE
 +BEGIN
 +    "#include <windows.h>\r\n"
 +    "#include <winres.h>\r\n"
 +    "#include <tchar.h>\r\n"
 +    "#include <m_button.h>\r\n"
 +    "#include <version.h>\0"
 +END
 +
 +3 TEXTINCLUDE
 +BEGIN
 +    "\r\n"
 +    "\0"
 +END
 +
 +#endif    // APSTUDIO_INVOKED
 +
 +
 +/////////////////////////////////////////////////////////////////////////////
 +//
 +// Version
 +//
 +
 +VS_VERSION_INFO VERSIONINFO
 + FILEVERSION 0,0,7,2
 + PRODUCTVERSION 0,0,7,2
 + FILEFLAGSMASK 0x3fL
 +#ifdef _DEBUG
 + FILEFLAGS 0x1L
 +#else
 + FILEFLAGS 0x0L
 +#endif
 + FILEOS 0x40004L
 + FILETYPE 0x1L
 + FILESUBTYPE 0x0L
 +BEGIN
 +    BLOCK "StringFileInfo"
 +    BEGIN
 +        BLOCK "000004b0"
 +        BEGIN
 +            VALUE "FileDescription", "Console log window for Miranda 0.8.0.3+"
 +            VALUE "FileVersion", "0.0.7.2"
 +            VALUE "InternalName", "Console"
 +            VALUE "LegalCopyright", "© 2005-2009 Bio"
 +            VALUE "OriginalFilename", "Console.dll"
 +            VALUE "ProductName", "Console"
 +            VALUE "ProductVersion", "0.0.7.2"
 +        END
 +    END
 +    BLOCK "VarFileInfo"
 +    BEGIN
 +        VALUE "Translation", 0x0, 1200
 +    END
 +END
 +
 +
 +/////////////////////////////////////////////////////////////////////////////
 +//
 +// Icon
 +//
 +
 +// Icon with lowest ID value placed first to ensure application icon
 +// remains consistent on all systems.
 +IDI_COPY                ICON                    "Res\\copy.ico"
 +IDI_CONSOLE             ICON                    "res\\console.ico"
 +IDI_NOSCROLL            ICON                    "Res\\noscroll.ico"
 +IDI_SCROLL              ICON                    "Res\\scroll.ico"
 +IDI_SAVE                ICON                    "Res\\save.ico"
 +IDI_DELETE              ICON                    "Res\\delete.ico"
 +IDI_OPTIONS             ICON                    "Res\\options.ico"
 +IDI_PAUSED              ICON                    "Res\\paused.ico"
 +IDI_STARTED             ICON                    "Res\\started.ico"
 +IDI_BTN_UP              ICON                    "Res\\btn_up.ico"
 +IDI_BTN_DN              ICON                    "Res\\btn_dn.ico"
 +IDI_CLOSE               ICON                    "Res\\close.ico"
 +IDI_PAUSE               ICON                    "Res\\pause.ico"
 +IDI_START               ICON                    "Res\\start.ico"
 +IDI_IN                  ICON                    "Res\\in.ico"
 +IDI_OUT                 ICON                    "Res\\out.ico"
 +IDI_ARROW               ICON                    "Res\\arrow.ico"
 +IDI_INFO                ICON                    "Res\\info.ico"
 +IDI_EMPTY               ICON                    "Res\\empty.ico"
 +
 +/////////////////////////////////////////////////////////////////////////////
 +//
 +// Bitmap
 +//
 +
 +IDB_CONSOLE_UP          BITMAP                  "res\\console_up.bmp"
 +IDB_CONSOLE_DOWN        BITMAP                  "res\\console_dn.bmp"
 +
 +/////////////////////////////////////////////////////////////////////////////
 +//
 +// DESIGNINFO
 +//
 +
 +#ifdef APSTUDIO_INVOKED
 +GUIDELINES DESIGNINFO
 +BEGIN
 +    IDD_CONSOLE, DIALOG
 +    BEGIN
 +        BOTTOMMARGIN, 256
 +    END
 +END
 +#endif    // APSTUDIO_INVOKED
 +
 +#endif    // English (U.S.) resources
 +/////////////////////////////////////////////////////////////////////////////
 +
 +
 +
 +#ifndef APSTUDIO_INVOKED
 +/////////////////////////////////////////////////////////////////////////////
 +//
 +// Generated from the TEXTINCLUDE 3 resource.
 +//
 +
 +
 +/////////////////////////////////////////////////////////////////////////////
 +#endif    // not APSTUDIO_INVOKED
 diff --git a/Console/version.h b/Console/version.h new file mode 100644 index 0000000..f7a19ef --- /dev/null +++ b/Console/version.h @@ -0,0 +1,51 @@ +/*
 +
 +Miranda IM: the free IM client for Microsoft* Windows*
 +
 +Copyright 2000-2008 Miranda ICQ/IM project,
 +all portions of this codebase are copyrighted to the people
 +listed in contributors.txt.
 +
 +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; if not, write to the Free Software
 +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 +*/
 +
 +
 +#define __FILEVERSION_STRING 0,0,7,2
 +#define __VERSION_STRING     "0.0.7.2"
 +#define __VERSION_DWORD      0x00000702
 +
 +
 +#define __PLUGIN_DESC        "Console log window for Miranda 0.8.0.3+"
 +#define __PLUGIN_LONGDESC    __PLUGIN_DESC ". Compiled by Bio. Enjoy! 8-)          [ Built "__DATE__"  "__TIME__" ]"
 +#define __PLUGIN_AUTHOR      "Bio"
 +#define __PLUGIN_EMAIL       "bio@msx.ru"
 +#define __PLUGIN_RIGHTS      "© 2005-2009 Bio"
 +#define __PLUGIN_FILE        "Console.dll"
 +#define __PLUGIN_SHORTNAME   "Console"
 +
 +
 +#ifdef _UNICODE
 +	// {23D4F302-D513-45b7-9027-445F29557311}
 +	#define MIID_CONSOLE { 0x23d4f302, 0xd513, 0x45b7, { 0x90, 0x27, 0x44, 0x5f, 0x29, 0x55, 0x73, 0x11 }}
 +	#define __PLUGIN_NAME __PLUGIN_SHORTNAME " (Unicode)"
 +	#define __PLUGIN_URL "http://addons.miranda-im.org/details.php?action=viewfile&id=3791"
 +#endif
 +
 +#ifndef _UNICODE
 +	// {798A94B8-74F4-46fc-978B-353D22BD485E}
 +	#define MIID_CONSOLE { 0x798a94b8, 0x74f4, 0x46fc, { 0x97, 0x8b, 0x35, 0x3d, 0x22, 0xbd, 0x48, 0x5e }}
 +	#define __PLUGIN_NAME __PLUGIN_SHORTNAME " (ANSI)"
 +	#define __PLUGIN_URL "http://addons.miranda-im.org/details.php?action=viewfile&id=3789"
 +#endif
  | 
