Esempio n. 1
0
BOOL WINAPI OnFreeConsole(void)
{
	//typedef BOOL (WINAPI* OnFreeConsole_t)(void);
	ORIGINALFAST(FreeConsole);
	BOOL lbRc = FALSE;

	if (ph && ph->PreCallBack)
	{
		SETARGS(&lbRc);

		if (!ph->PreCallBack(&args))
			return lbRc;
	}

	//ReleaseConsoleInputSemaphore();

	lbRc = F(FreeConsole)();

	if (ph && ph->PostCallBack)
	{
		SETARGS(&lbRc);
		ph->PostCallBack(&args);
	}

	return lbRc;
}
Esempio n. 2
0
BOOL WINAPI OnAllocConsole(void)
{
	//typedef BOOL (WINAPI* OnAllocConsole_t)(void);
	ORIGINALFAST(AllocConsole);
	BOOL lbRc = FALSE, lbAllocated = FALSE;
	COORD crLocked;
	HMODULE hKernel = NULL;
	DWORD nErrCode = 0;
	BOOL lbAttachRc = FALSE;
	HWND hOldConWnd = GetRealConsoleWindow();

	if (ph && ph->PreCallBack)
	{
		SETARGS(&lbRc);

		if (!ph->PreCallBack(&args))
			return lbRc;
	}

	if (gbPrepareDefaultTerminal && gbIsNetVsHost)
	{
		if (!ghConWnd)
			gnVsHostStartConsole = 2;
		else
			gnVsHostStartConsole = 0;
	}

	// Попытаться создать консольное окно "по тихому"
	if (gpDefTerm && !hOldConWnd && !gnServerPID)
	{
		HWND hCreatedCon = gpDefTerm->AllocHiddenConsole(false);
		if (hCreatedCon)
		{
			hOldConWnd = hCreatedCon;
			lbAllocated = TRUE;
		}
	}

	// GUI приложение во вкладке. Если окна консоли еще нет - попробовать прицепиться
	// к родительской консоли (консоли серверного процесса)
	if ((gbAttachGuiClient || ghAttachGuiClient) && !gbPrepareDefaultTerminal)
	{
		if (AttachServerConsole())
		{
			hOldConWnd = GetRealConsoleWindow();
			lbAllocated = TRUE; // Консоль уже есть, ничего не надо
		}
	}

	DefTermMsg(L"AllocConsole calling");

	if (!lbAllocated && F(AllocConsole))
	{
		lbRc = F(AllocConsole)();

		if (lbRc && !gbPrepareDefaultTerminal && IsVisibleRectLocked(crLocked))
		{
			// Размер _видимой_ области. Консольным приложениям запрещено менять его "изнутри".
			// Размер может менять только пользователь ресайзом окна ConEmu
			HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
			CONSOLE_SCREEN_BUFFER_INFO csbi = {};
			if (GetConsoleScreenBufferInfo(hStdOut, &csbi))
			{
				//specified width and height cannot be less than the width and height of the console screen buffer's window
				SMALL_RECT rNewRect = {0, 0, crLocked.X-1, crLocked.Y-1};
				OnSetConsoleWindowInfo(hStdOut, TRUE, &rNewRect);
				#ifdef _DEBUG
				COORD crNewSize = {crLocked.X, max(crLocked.Y, csbi.dwSize.Y)};
				#endif
				hkFunc.setConsoleScreenBufferSize(hStdOut, crLocked);
			}
		}
	}

	//InitializeConsoleInputSemaphore();

	if (ph && ph->PostCallBack)
	{
		SETARGS(&lbRc);
		ph->PostCallBack(&args);
	}

	HWND hNewConWnd = GetRealConsoleWindow();

	// Обновить ghConWnd и мэппинг
	OnConWndChanged(hNewConWnd);

	#ifdef _DEBUG
	//_ASSERTEX(lbRc && ghConWnd);
	wchar_t szAlloc[500], szFile[MAX_PATH];
	GetModuleFileName(NULL, szFile, countof(szFile));
	msprintf(szAlloc, countof(szAlloc), L"OnAllocConsole\nOld=x%08X, New=x%08X, ghConWnd=x%08X\ngbPrepareDefaultTerminal=%i, gbIsNetVsHost=%i\n%s",
		LODWORD(hOldConWnd), LODWORD(hNewConWnd), LODWORD(ghConWnd), gbPrepareDefaultTerminal, gbIsNetVsHost, szFile);
	// VisualStudio host file calls AllocConsole TWICE(!)
	// Second call is totally spare (console already created)
	//MessageBox(NULL, szAlloc, L"OnAllocConsole called", MB_SYSTEMMODAL);
	#endif

	if (hNewConWnd && (hNewConWnd != hOldConWnd) && gpDefTerm && gbIsNetVsHost)
	{
		DefTermMsg(L"Calling gpDefTerm->OnAllocConsoleFinished");
		gpDefTerm->OnAllocConsoleFinished();
		SetLastError(0);
	}
	else if (hNewConWnd)
	{
		DefTermMsg(L"Console was already allocated");
	}
	else
	{
		DefTermMsg(L"Something was wrong");
	}

	TODO("Можно бы по настройке установить параметры. Кодовую страницу, например");

	return lbRc;
}
Esempio n. 3
0
File: xmcvt.c Progetto: juddy/edcde
void
DtkshRegisterNamedIntConverters( void )
{
	XtConvertArgRec args[1];

#define SETARGS(X) args[0].address_mode = XtAddress; args[0].address_id = (caddr_t)&X[0]; args[0].size = sizeof(X);

        /* Special!! Converts string to named value */
	SETARGS(NI_TraversalDirection);
	XtAddConverter(XmRString, "TraversalDirection", 
		DtkshCvtStringToNamedValue, 
		args, 1);
	SETARGS(NI_CommandChild);
	XtAddConverter(XmRString, "CommandChildType", 
		DtkshCvtStringToNamedValue, 
		args, 1);
	SETARGS(NI_MessageBoxChild);
	XtAddConverter(XmRString, "MessageBoxChildType", 
		DtkshCvtStringToNamedValue, 
		args, 1);
	SETARGS(NI_FileSelChild);
	XtAddConverter(XmRString, "FileSelChildType", 
		DtkshCvtStringToNamedValue, 
		args, 1);
	SETARGS(NI_SelBoxChild);
	XtAddConverter(XmRString, "SelBoxChildType", 
		DtkshCvtStringToNamedValue, 
		args, 1);
	SETARGS(NI_QuickHelpChildType);
	XtAddConverter(XmRString, "QuickHelpChildType", 
		DtkshCvtStringToNamedValue, 
		args, 1);
	SETARGS(NI_HelpType);
	XtAddConverter(XmRString, "HelpType", 
		DtkshCvtStringToNamedValue, 
		args, 1);
	SETARGS(NI_HelpScrollBarDisplayPolicy);
	XtAddConverter(XmRString, "HelpScrollBarDisplayPolicy", 
		DtkshCvtStringToNamedValue, 
		args, 1);
	SETARGS(NI_TextHighlightMode);
	XtAddConverter(XmRString, "TextHighlightMode", 
		DtkshCvtStringToNamedValue, 
		args, 1);
	SETARGS(NI_TextSearchDirection);
	XtAddConverter(XmRString, "TextSearchDirection", 
		DtkshCvtStringToNamedValue, 
		args, 1);
	SETARGS(NI_TextFormat);
	XtAddConverter(XmRString, "TextFormat", 
		DtkshCvtStringToNamedValue, 
		args, 1);
	SETARGS(NI_TT_OP);
	XtAddConverter(XmRString, "TtOp", DtkshCvtStringToNamedValue, 
                       args, 1);
	SETARGS(NI_TT_SCOPE);
	XtAddConverter(XmRString, "TtScope", DtkshCvtStringToNamedValue, 
		       args, 1);
	SETARGS(NI_TT_STATUS);
	XtAddConverter(XmRString, "TtStatus", DtkshCvtStringToNamedValue, 
		       args, 1);
	SETARGS(NI_TEAR_OFF);
	XtAddConverter(XmRString, XmRTearOffModel, DtkshCvtStringToNamedValue, 
		       args, 1);
	SETARGS(NI_WIN_GRAVITY);
	XtAddConverter(XmRString, "XWinGravity", DtkshCvtStringToNamedValue, 
		       args, 1);
	SETARGS(NI_MWMInputMode);
	XtAddConverter(XmRString, "MWMInputMode", DtkshCvtStringToNamedValue, 
		       args, 1);

        /* The rest of these convert named values into strings */
	SETARGS(NI_ArrowDirection);
	XtAddConverter(XmRArrowDirection, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_MultiClick);
	XtAddConverter(XmRMultiClick, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_DialogStyle);
	XtAddConverter(XmRDialogStyle, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_MWMInputMode);
	XtAddConverter("MWMInputMode", XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_ResizePolicy);
	XtAddConverter(XmRResizePolicy, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_FileTypeMask);
	XtAddConverter(XmRFileTypeMask, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_ShadowType);
	XtAddConverter(XmRShadowType, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_Attachment);
	XtAddConverter(XmRAttachment, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_ChildType);
	XtAddConverter(XmRChildType, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_Alignment);
	XtAddConverter(XmRChildHorizontalAlignment, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_ChildVerticalAlignment);
	XtAddConverter(XmRChildVerticalAlignment, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_UnitType);
	XtAddConverter(XmRUnitType, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_NavigationType);
	XtAddConverter(XmRNavigationType, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_Alignment);
	XtAddConverter(XmRAlignment, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_LabelType);
	XtAddConverter(XmRLabelType, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_StringDirection);
	XtAddConverter(XmRStringDirection, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_SelectionPolicy);
	XtAddConverter(XmRSelectionPolicy, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_ScrollBarPlacement);
	XtAddConverter(XmRScrollBarPlacement, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_ScrollBarDisplayPolicy);
	XtAddConverter(XmRScrollBarDisplayPolicy, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_ScrollingPolicy);
	XtAddConverter(XmRScrollingPolicy, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_VisualPolicy);
	XtAddConverter(XmRVisualPolicy, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_ListSizePolicy);
	XtAddConverter(XmRListSizePolicy, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_EditMode);
	XtAddConverter(XmREditMode, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_CommandWindowLocation);
	XtAddConverter(XmRCommandWindowLocation, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_DefaultButtonType);
	XtAddConverter(XmRDefaultButtonType, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_DialogType);
	XtAddConverter(XmRDialogType, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_EntryVerticalAlignment);
	XtAddConverter(XmRVerticalAlignment, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_Orientation);
	XtAddConverter(XmROrientation, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_Packing);
	XtAddConverter(XmRPacking, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_RowColumnType);
	XtAddConverter(XmRRowColumnType, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_ProcessingDirection);
	XtAddConverter(XmRProcessingDirection, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_ChildPlacement);
	XtAddConverter(XmRChildPlacement, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_SelectionDialogType);
	XtAddConverter(XmRSelectionType, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_SeparatorType);
	XtAddConverter(XmRSeparatorType, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_IndicatorType);
	XtAddConverter(XmRIndicatorType, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_AudibleWarning);
	XtAddConverter(XmRAudibleWarning, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_DeleteResponse);
	XtAddConverter(XmRDeleteResponse, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_KeyboardFocusPolicy);
	XtAddConverter(XmRKeyboardFocusPolicy, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_InitialState);
	XtAddConverter(XmRInitialState, XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_HelpReturnSelectedWidgetResultType);
	XtAddConverter("HelpReturnSelectedWidgetResultType", XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_HelpType);
	XtAddConverter("HelpType", XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_HelpScrollBarDisplayPolicy);
	XtAddConverter("HelpScrollBarDisplayPolicy", XtRString, 
		DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_Button);
	XtAddConverter("XE_Button", XtRString, 
                DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_EventType);
	XtAddConverter("XE_EventType", XtRString, 
                DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_XBool);
	XtAddConverter("X_Bool", XtRString, 
                DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_TraversalDirection);
	XtAddConverter("TraversalDirection", XtRString, 
                DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_VisibilityType);
	XtAddConverter("VisibilityType", XtRString,
                DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_ListSelectionType);
	XtAddConverter("ListSelectionType", XtRString, 
                DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_TextFormat);
	XtAddConverter("TextFormat", XtRString, 
                DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_HelpHyperType);
	XtAddConverter("HelpHyperType", XtRString, 
                DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_TT_STATUS);
	XtAddConverter("TtStatus", XtRString, DtkshCvtNamedValueToString, 
		        args, 1);
	SETARGS(NI_TT_OP);
	XtAddConverter("TtOp", XtRString, DtkshCvtNamedValueToString, args, 1);
	SETARGS(NI_TEAR_OFF);
	XtAddConverter(XmRTearOffModel, XtRString, DtkshCvtNamedValueToString, 
		args, 1);
	SETARGS(NI_WIN_GRAVITY);
	XtAddConverter("XWinGravity", XtRString, DtkshCvtNamedValueToString, 
		args, 1);
}