Merge branch 'main' of https://github.com/microsoft/terminal into dev/pabhoj/sui_action_overhaul

This commit is contained in:
Pankaj Bhojwani
2025-05-05 15:34:00 -07:00
57 changed files with 251 additions and 98 deletions

View File

@@ -222,6 +222,7 @@ Stubless
Subheader
Subpage
syscall
syscolors
SYSTEMBACKDROP
TABROW
TASKBARCREATED

View File

@@ -1679,6 +1679,7 @@ SMARTQUOTE
SMTO
snapcx
snapcy
snk
SOLIDBOX
Solutiondir
somefile

Binary file not shown.

View File

@@ -6,6 +6,20 @@
],
"SigningInfo": {
"Operations": [
{
"KeyCode": "CP-233904-SN",
"OperationSetCode": "StrongNameSign",
"ToolName": "sign",
"ToolVersion": "1.0",
"Parameters": []
},
{
"KeyCode": "CP-233904-SN",
"OperationSetCode": "StrongNameVerify",
"ToolName": "sign",
"ToolVersion": "1.0",
"Parameters": []
},
{
"KeyCode": "CP-230012",
"OperationSetCode": "SigntoolSign",

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -186,18 +186,20 @@ bool ImageSlice::_copyCells(const ImageSlice& srcSlice, const til::CoordType src
}
// The used destination before and after the written area must be erased.
if (dstUsedBegin < dstWriteBegin)
// If this results in the entire range being erased, we return true to let
// the caller know that the slice should be deleted.
if (dstUsedBegin < dstWriteBegin && _eraseCells(dstUsedBegin, dstWriteBegin))
{
_eraseCells(dstUsedBegin, dstWriteBegin);
return true;
}
if (dstUsedEnd > dstWriteEnd)
if (dstUsedEnd > dstWriteEnd && _eraseCells(dstWriteEnd, dstUsedEnd))
{
_eraseCells(dstWriteEnd, dstUsedEnd);
return true;
}
// If the beginning column is now not less than the end, that means the
// content has been entirely erased, so we return true to let the caller
// know that the slice should be deleted.
// At this point, if the beginning column is not less than the end, that
// means this was an empty slice into which nothing was copied, so we can
// again return true to let the caller know it should be deleted.
return _columnBegin >= _columnEnd;
}
@@ -210,10 +212,19 @@ void ImageSlice::EraseBlock(TextBuffer& buffer, const til::rect rect)
}
}
void ImageSlice::EraseCells(TextBuffer& buffer, const til::point at, const size_t distance)
void ImageSlice::EraseCells(TextBuffer& buffer, const til::point at, const til::CoordType distance)
{
auto& row = buffer.GetMutableRowByOffset(at.y);
EraseCells(row, at.x, gsl::narrow_cast<til::CoordType>(at.x + distance));
auto x = at.x;
auto y = at.y;
auto distanceRemaining = distance;
while (distanceRemaining > 0)
{
auto& row = buffer.GetMutableRowByOffset(y);
EraseCells(row, x, x + distanceRemaining);
distanceRemaining -= (static_cast<til::CoordType>(row.size()) - x);
x = 0;
y++;
}
}
void ImageSlice::EraseCells(ROW& row, const til::CoordType columnBegin, const til::CoordType columnEnd)

View File

@@ -41,7 +41,7 @@ public:
static void CopyRow(const ROW& srcRow, ROW& dstRow);
static void CopyCells(const ROW& srcRow, const til::CoordType srcColumn, ROW& dstRow, const til::CoordType dstColumnBegin, const til::CoordType dstColumnEnd);
static void EraseBlock(TextBuffer& buffer, const til::rect rect);
static void EraseCells(TextBuffer& buffer, const til::point at, const size_t distance);
static void EraseCells(TextBuffer& buffer, const til::point at, const til::CoordType distance);
static void EraseCells(ROW& row, const til::CoordType columnBegin, const til::CoordType columnEnd);
private:

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -19,6 +19,79 @@ using namespace ::Microsoft::Terminal::Core;
static LPCWSTR term_window_class = L"HwndTerminalClass";
STDMETHODIMP HwndTerminal::TsfDataProvider::QueryInterface(REFIID, void**) noexcept
{
return E_NOTIMPL;
}
ULONG STDMETHODCALLTYPE HwndTerminal::TsfDataProvider::AddRef() noexcept
{
return 1;
}
ULONG STDMETHODCALLTYPE HwndTerminal::TsfDataProvider::Release() noexcept
{
return 1;
}
HWND HwndTerminal::TsfDataProvider::GetHwnd()
{
return _terminal->GetHwnd();
}
RECT HwndTerminal::TsfDataProvider::GetViewport()
{
const auto hwnd = GetHwnd();
RECT rc;
GetClientRect(hwnd, &rc);
// https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getclientrect
// > The left and top members are zero. The right and bottom members contain the width and height of the window.
// --> We can turn the client rect into a screen-relative rect by adding the left/top position.
ClientToScreen(hwnd, reinterpret_cast<POINT*>(&rc));
rc.right += rc.left;
rc.bottom += rc.top;
return rc;
}
RECT HwndTerminal::TsfDataProvider::GetCursorPosition()
{
// Convert from columns/rows to pixels.
til::point cursorPos;
til::size fontSize;
{
const auto lock = _terminal->_terminal->LockForReading();
cursorPos = _terminal->_terminal->GetCursorPosition(); // measured in terminal cells
fontSize = _terminal->_actualFont.GetSize(); // measured in pixels, not DIP
}
POINT ptSuggestion = {
.x = cursorPos.x * fontSize.width,
.y = cursorPos.y * fontSize.height,
};
ClientToScreen(GetHwnd(), &ptSuggestion);
// Final measurement should be in pixels
return {
.left = ptSuggestion.x,
.top = ptSuggestion.y,
.right = ptSuggestion.x + fontSize.width,
.bottom = ptSuggestion.y + fontSize.height,
};
}
void HwndTerminal::TsfDataProvider::HandleOutput(std::wstring_view text)
{
_terminal->_WriteTextToConnection(text);
}
Microsoft::Console::Render::Renderer* HwndTerminal::TsfDataProvider::GetRenderer()
{
return _terminal->_renderer.get();
}
// This magic flag is "documented" at https://msdn.microsoft.com/en-us/library/windows/desktop/ms646301(v=vs.85).aspx
// "If the high-order bit is 1, the key is down; otherwise, it is up."
static constexpr short KeyPressed{ gsl::narrow_cast<short>(0x8000) };
@@ -242,6 +315,7 @@ try
{
// As a rule, detach resources from the Terminal before shutting them down.
// This ensures that teardown is reentrant.
_tsfHandle = {};
// Shut down the renderer (and therefore the thread) before we implode
_renderer.reset();
@@ -941,6 +1015,16 @@ void __stdcall TerminalSetFocus(void* terminal)
{
LOG_IF_FAILED(uiaEngine->Enable());
}
publicTerminal->_FocusTSF();
}
void HwndTerminal::_FocusTSF() noexcept
{
if (!_tsfHandle)
{
_tsfHandle = Microsoft::Console::TSF::Handle::Create();
_tsfHandle.AssociateFocus(&_tsfDataProvider);
}
}
void __stdcall TerminalKillFocus(void* terminal)

View File

@@ -6,6 +6,7 @@
#include "../../buffer/out/textBuffer.hpp"
#include "../../renderer/inc/FontInfoDesired.hpp"
#include "../../types/IControlAccessibilityInfo.h"
#include "../../tsf/Handle.h"
namespace Microsoft::Console::Render::Atlas
{
@@ -85,6 +86,21 @@ public:
static LRESULT CALLBACK HwndTerminalWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) noexcept;
private:
struct TsfDataProvider : public Microsoft::Console::TSF::IDataProvider
{
TsfDataProvider(HwndTerminal* t) :
_terminal(t) {}
virtual ~TsfDataProvider() = default;
STDMETHODIMP TsfDataProvider::QueryInterface(REFIID, void**) noexcept override;
ULONG STDMETHODCALLTYPE TsfDataProvider::AddRef() noexcept override;
ULONG STDMETHODCALLTYPE TsfDataProvider::Release() noexcept override;
HWND GetHwnd() override;
RECT GetViewport() override;
RECT GetCursorPosition() override;
void HandleOutput(std::wstring_view text) override;
Microsoft::Console::Render::Renderer* GetRenderer() override;
HwndTerminal* _terminal;
};
wil::unique_hwnd _hwnd;
FontInfoDesired _desiredFont;
FontInfo _actualFont;
@@ -106,6 +122,10 @@ private:
std::optional<til::point> _lastMouseClickPos;
std::optional<til::point> _singleClickTouchdownPos;
// _tsfHandle uses _tsfDataProvider. Destructors run from bottom to top; this maintains correct destruction order.
TsfDataProvider _tsfDataProvider{ this };
Microsoft::Console::TSF::Handle _tsfHandle;
friend HRESULT _stdcall CreateTerminal(HWND parentHwnd, _Out_ void** hwnd, _Out_ void** terminal);
friend HRESULT _stdcall TerminalTriggerResize(_In_ void* terminal, _In_ til::CoordType width, _In_ til::CoordType height, _Out_ til::size* dimensions);
friend HRESULT _stdcall TerminalTriggerResizeWithDimension(_In_ void* terminal, _In_ til::size dimensions, _Out_ til::size* dimensionsInPixels);
@@ -129,6 +149,8 @@ private:
HRESULT _CopyToSystemClipboard(const std::string& stringToCopy, LPCWSTR lpszFormat) const;
void _PasteTextFromClipboard() noexcept;
void _FocusTSF() noexcept;
const unsigned int _NumberOfClicks(til::point clickPos, std::chrono::steady_clock::time_point clickTime) noexcept;
HRESULT _StartSelection(LPARAM lParam) noexcept;
HRESULT _MoveSelection(LPARAM lParam) noexcept;

View File

@@ -2825,6 +2825,8 @@ namespace winrt::Microsoft::Terminal::Control::implementation
const auto fontSize = settings.FontSize();
const auto fontWeight = settings.FontWeight();
const auto fontFace = settings.FontFace();
const auto cellWidth = CSSLengthPercentage::FromString(settings.CellWidth().c_str());
const auto cellHeight = CSSLengthPercentage::FromString(settings.CellHeight().c_str());
const auto scrollState = settings.ScrollState();
const auto padding = settings.Padding();
@@ -2836,6 +2838,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation
// not, but DX doesn't use that info at all.
// The Codepage is additionally not actually used by the DX engine at all.
FontInfoDesired desiredFont{ fontFace, 0, fontWeight.Weight, fontSize, CP_UTF8 };
desiredFont.SetCellSize(cellWidth, cellHeight);
FontInfo actualFont{ fontFace, 0, fontWeight.Weight, desiredFont.GetEngineSize(), CP_UTF8, false };
// Create a DX engine and initialize it with our font and DPI. We'll

View File

@@ -15,6 +15,12 @@
<Version>0.1</Version>
</PropertyGroup>
<PropertyGroup Condition="'$(WindowsTerminalOfficialBuild)'=='true'">
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\..\build\config\272MSSharedLibSN2048.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<ItemGroup>
<AdditionalFiles Include="$(MSBuildThisFileDirectory)stylecop.json">
<Visible>true</Visible>

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -132,7 +132,7 @@ TARGETLIBS = \
$(ONECOREUAP_EXTERNAL_SDK_LIB_PATH)\dxgi.lib \
$(ONECOREUAP_EXTERNAL_SDK_LIB_PATH)\d3d11.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\api-ms-win-mm-playsound-l1.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-imm-l1-1-0.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-imm-l1.lib \
$(ONECORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-dwmapi-ext-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-gdi-dc-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-gdi-dc-create-l1.lib \
@@ -160,12 +160,14 @@ TARGETLIBS = \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-sysparams-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-window-ext-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-winstamin-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-syscolors-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-shell-shell32-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-uxtheme-themes-l1.lib \
$(ONECORESHELL_INTERNAL_LIB_VPATH_L)\api-ms-win-shell-dataobject-l1.lib \
$(ONECORESHELL_INTERNAL_LIB_VPATH_L)\api-ms-win-shell-namespace-l1.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-uiacore-l1.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-usp10-l1.lib \
$(ONECORE_EXTERNAL_SDK_LIB_PATH)\ntdll.lib \
$(WINCORE_OBJ_PATH)\console\open\src\host\lib\$(O)\conhostv2.lib \
$(WINCORE_OBJ_PATH)\console\conint\$(O)\conint.lib \
$(WINCORE_OBJ_PATH)\console\open\src\buffer\out\lib\$(O)\conbufferout.lib \
@@ -177,7 +179,6 @@ TARGETLIBS = \
$(WINCORE_OBJ_PATH)\console\open\src\audio\midi\lib\$(O)\ConAudioMidi.lib \
$(WINCORE_OBJ_PATH)\console\open\src\renderer\base\lib\$(O)\ConRenderBase.lib \
$(WINCORE_OBJ_PATH)\console\open\src\renderer\gdi\lib\$(O)\ConRenderGdi.lib \
$(WINCORE_OBJ_PATH)\console\open\src\renderer\vt\lib\$(O)\ConRenderVt.lib \
$(WINCORE_OBJ_PATH)\console\open\src\renderer\wddmcon\lib\$(O)\ConRenderWddmCon.lib \
$(WINCORE_OBJ_PATH)\console\open\src\server\lib\$(O)\ConServer.lib \
$(WINCORE_OBJ_PATH)\console\open\src\interactivity\base\lib\$(O)\ConInteractivityBaseLib.lib \
@@ -196,7 +197,7 @@ DELAYLOAD = \
api-ms-win-core-com-l1.dll; \
api-ms-win-core-registry-l2.dll; \
api-ms-win-mm-playsound-l1.dll; \
ext-ms-win-imm-l1-1-0.lib; \
ext-ms-win-imm-l1.dll; \
api-ms-win-shcore-obsolete-l1.dll; \
api-ms-win-shcore-scaling-l1.dll; \
api-ms-win-shell-dataobject-l1.dll; \
@@ -229,6 +230,7 @@ DELAYLOAD = \
ext-ms-win-rtcore-ntuser-sysparams-l1.dll; \
ext-ms-win-rtcore-ntuser-window-ext-l1.dll; \
ext-ms-win-rtcore-ntuser-winstamin-l1.dll; \
ext-ms-win-rtcore-ntuser-syscolors-l1.dll; \
ext-ms-win-shell-shell32-l1.dll; \
ext-ms-win-uiacore-l1.dll; \
ext-ms-win-uxtheme-themes-l1.dll; \

View File

@@ -24,10 +24,7 @@ INCLUDES = \
..\..\inc\test; \
$(ONECORESDKTOOLS_INTERNAL_INC_PATH_L)\wextest\cue; \
# prepend the ConRenderVt.Unittest.lib, so that it's linked before the non-ut version.
TARGETLIBS = \
$(WINCORE_OBJ_PATH)\console\open\src\renderer\vt\ut_lib\$(O)\ConRenderVt.Unittest.lib \
$(TARGETLIBS) \
$(ONECORESDKTOOLS_INTERNAL_LIB_PATH_L)\WexTest\Cue\Wex.Common.lib \
$(ONECORESDKTOOLS_INTERNAL_LIB_PATH_L)\WexTest\Cue\Wex.Logger.lib \

View File

@@ -41,10 +41,7 @@ INCLUDES = \
..\..\inc\test; \
$(ONECORESDKTOOLS_INTERNAL_INC_PATH_L)\wextest\cue; \
# prepend the ConRenderVt.Unittest.lib, so that it's linked before the non-ut version.
TARGETLIBS = \
$(WINCORE_OBJ_PATH)\console\open\src\renderer\vt\ut_lib\$(O)\ConRenderVt.Unittest.lib \
$(WINCORE_OBJ_PATH)\console\open\src\host\ut_lib\$(O)\ConhostV2.Unittest.lib \
$(TARGETLIBS) \
$(ONECORESDKTOOLS_INTERNAL_LIB_PATH_L)\WexTest\Cue\Wex.Common.lib \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -60,4 +60,5 @@ INCLUDES = \
..; \
TARGETLIBS = \
$(TARGETLIBS) \
$(ONECORE_EXTERNAL_SDK_LIB_VPATH_L)\onecore.lib \

View File

@@ -50,7 +50,7 @@ TARGETLIBS = \
$(ONECOREUAP_EXTERNAL_SDK_LIB_PATH)\dxgi.lib \
$(ONECOREUAP_EXTERNAL_SDK_LIB_PATH)\propsys.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\api-ms-win-mm-playsound-l1.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-imm-l1-1-0.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-imm-l1.lib \
$(ONECORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-dwmapi-ext-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-gdi-dc-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-gdi-dc-create-l1.lib \
@@ -76,12 +76,14 @@ TARGETLIBS = \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-sysparams-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-window-ext-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-winstamin-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-syscolors-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-shell-shell32-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-uxtheme-themes-l1.lib \
$(ONECORESHELL_INTERNAL_LIB_VPATH_L)\api-ms-win-shell-dataobject-l1.lib \
$(ONECORESHELL_INTERNAL_LIB_VPATH_L)\api-ms-win-shell-namespace-l1.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-uiacore-l1.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-usp10-l1.lib \
$(ONECORE_EXTERNAL_SDK_LIB_PATH)\ntdll.lib \
$(WINCORE_OBJ_PATH)\console\conint\$(O)\conint.lib \
$(WINCORE_OBJ_PATH)\console\open\src\buffer\out\lib\$(O)\conbufferout.lib \
$(WINCORE_OBJ_PATH)\console\open\src\host\lib\$(O)\conhostv2.lib \
@@ -93,7 +95,6 @@ TARGETLIBS = \
$(WINCORE_OBJ_PATH)\console\open\src\audio\midi\lib\$(O)\ConAudioMidi.lib \
$(WINCORE_OBJ_PATH)\console\open\src\renderer\base\lib\$(O)\ConRenderBase.lib \
$(WINCORE_OBJ_PATH)\console\open\src\renderer\gdi\lib\$(O)\ConRenderGdi.lib \
$(WINCORE_OBJ_PATH)\console\open\src\renderer\vt\lib\$(O)\ConRenderVt.lib \
$(WINCORE_OBJ_PATH)\console\open\src\renderer\wddmcon\lib\$(O)\ConRenderWddmCon.lib \
$(WINCORE_OBJ_PATH)\console\open\src\server\lib\$(O)\ConServer.lib \
$(WINCORE_OBJ_PATH)\console\open\src\interactivity\base\lib\$(O)\ConInteractivityBaseLib.lib \
@@ -112,7 +113,7 @@ DELAYLOAD = \
OLEAUT32.dll; \
icu.dll; \
api-ms-win-mm-playsound-l1.dll; \
ext-ms-win-imm-l1-1-0.lib; \
ext-ms-win-imm-l1.dll; \
api-ms-win-shcore-scaling-l1.dll; \
api-ms-win-shell-dataobject-l1.dll; \
api-ms-win-shell-namespace-l1.dll; \
@@ -143,6 +144,7 @@ DELAYLOAD = \
ext-ms-win-rtcore-ntuser-sysparams-l1.dll; \
ext-ms-win-rtcore-ntuser-window-ext-l1.dll; \
ext-ms-win-rtcore-ntuser-winstamin-l1.dll; \
ext-ms-win-rtcore-ntuser-syscolors-l1.dll; \
ext-ms-win-shell-shell32-l1.dll; \
ext-ms-win-uiacore-l1.dll; \
ext-ms-win-uxtheme-themes-l1.dll; \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -4,16 +4,16 @@
# -------------------------------------
# Pull our dependencies from vcpkg. This includes gsl - if you run into errors
# from a missing gsl, make sure you go build onecore/window/vcpkg first.
# from a missing gsl or fmt, make sure you go build .../console/vcpkg first.
!include $(PROJECT_ROOT)\vcpkg\consume.inc
!include $(PROJECT_ROOT)\core\console\vcpkg\consume.inc
# -------------------------------------
# Preprocessor Settings
# -------------------------------------
UNICODE = 1
C_DEFINES = $(C_DEFINES) -DUNICODE -D_UNICODE -DFMT_HEADER_ONLY -D__INSIDE_WINDOWS -DBUILD_ONECORE_INTERACTIVITY
C_DEFINES = $(C_DEFINES) -DUNICODE -D_UNICODE -D__INSIDE_WINDOWS -DBUILD_ONECORE_INTERACTIVITY
# -------------------------------------
# CRT Configuration
@@ -50,7 +50,6 @@ INCLUDES= \
$(CONSOLE_SRC_PATH)\inc; \
$(CONSOLE_SRC_PATH)\..\..\inc; \
$(CONSOLE_SRC_PATH)\..\oss\chromium; \
$(CONSOLE_SRC_PATH)\..\oss\fmt\include; \
$(CONSOLE_SRC_PATH)\..\oss\interval_tree; \
$(CONSOLE_SRC_PATH)\..\oss\pcg\include; \
$(MINWIN_INTERNAL_PRIV_SDK_INC_PATH_L); \

View File

@@ -9,7 +9,7 @@
# Preprocessor Settings
# -------------------------------------
C_DEFINES = $(C_DEFINES) -DINLINE_TEST_METHOD_MARKUP -DUNIT_TESTING -DFMT_HEADER_ONLY
C_DEFINES = $(C_DEFINES) -DINLINE_TEST_METHOD_MARKUP -DUNIT_TESTING
# -------------------------------------
# Program Information
@@ -32,6 +32,7 @@ INCLUDES = \
TARGETLIBS = \
$(TARGETLIBS) \
$(ONECORE_EXTERNAL_SDK_LIB_VPATH_L)\onecore.lib \
$(ONECORE_EXTERNAL_SDK_LIB_PATH)\ntdll.lib \
$(ONECORESDKTOOLS_INTERNAL_LIB_PATH_L)\WexTest\Cue\Wex.Common.lib \
$(ONECORESDKTOOLS_INTERNAL_LIB_PATH_L)\WexTest\Cue\Wex.Logger.lib \
$(ONECORESDKTOOLS_INTERNAL_LIB_PATH_L)\WexTest\Cue\Te.Common.lib \

View File

@@ -78,6 +78,7 @@ INCLUDES = \
..\host; \
TARGETLIBS = \
$(TARGETLIBS) \
$(ONECORE_EXTERNAL_SDK_LIB_VPATH_L)\onecore.lib \
$(ONECORE_EXTERNAL_SDK_LIB_VPATH_L)\onecoreuap.lib \
$(ONECORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\onecore_internal.lib \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -99,7 +99,7 @@ public:
TerminalInput::StringType str;
str.append(std::wstring_view{ buffer });
str[str.size() - 1] = IsButtonDown(uiButton) ? L'M' : L'm';
str[str.size() - 1] = IsButtonUp(uiButton) ? L'm' : L'M';
return str;
}
@@ -182,23 +182,18 @@ public:
return result;
}
bool IsButtonDown(unsigned int uiButton)
bool IsButtonUp(unsigned int uiButton)
{
auto fIsDown = false;
switch (uiButton)
{
case WM_LBUTTONDBLCLK:
case WM_LBUTTONDOWN:
case WM_RBUTTONDOWN:
case WM_RBUTTONDBLCLK:
case WM_MBUTTONDOWN:
case WM_MBUTTONDBLCLK:
case WM_MOUSEWHEEL:
case WM_MOUSEHWHEEL:
fIsDown = true;
break;
case WM_LBUTTONUP:
case WM_RBUTTONUP:
case WM_MBUTTONUP:
case WM_XBUTTONUP:
return true;
default:
return false;
}
return fIsDown;
}
/* From winuser.h - Needed to manually specify the test properties

View File

@@ -48,7 +48,7 @@ TARGETLIBS = \
$(ONECOREUAP_EXTERNAL_SDK_LIB_PATH)\d3d11.lib \
$(ONECOREUAP_EXTERNAL_SDK_LIB_PATH)\d3dcompiler.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\api-ms-win-mm-playsound-l1.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-imm-l1-1-0.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-imm-l1.lib \
$(ONECORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-dwmapi-ext-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-gdi-dc-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-gdi-dc-create-l1.lib \
@@ -73,12 +73,14 @@ TARGETLIBS = \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-sysparams-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-window-ext-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-winstamin-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-syscolors-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-shell-shell32-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-uxtheme-themes-l1.lib \
$(ONECORESHELL_INTERNAL_LIB_VPATH_L)\api-ms-win-shell-dataobject-l1.lib \
$(ONECORESHELL_INTERNAL_LIB_VPATH_L)\api-ms-win-shell-namespace-l1.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-uiacore-l1.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-usp10-l1.lib \
$(ONECORE_EXTERNAL_SDK_LIB_PATH)\ntdll.lib \
$(WINCORE_OBJ_PATH)\console\conint\$(O)\conint.lib \
$(WINCORE_OBJ_PATH)\console\open\src\buffer\out\lib\$(O)\conbufferout.lib \
$(WINCORE_OBJ_PATH)\console\open\src\host\lib\$(O)\conhostv2.lib \
@@ -91,7 +93,6 @@ TARGETLIBS = \
$(WINCORE_OBJ_PATH)\console\open\src\renderer\base\lib\$(O)\ConRenderBase.lib \
$(WINCORE_OBJ_PATH)\console\open\src\renderer\gdi\lib\$(O)\ConRenderGdi.lib \
$(WINCORE_OBJ_PATH)\console\open\src\renderer\wddmcon\lib\$(O)\ConRenderWddmCon.lib \
$(WINCORE_OBJ_PATH)\console\open\src\renderer\vt\lib\$(O)\ConRenderVt.lib \
$(WINCORE_OBJ_PATH)\console\open\src\server\lib\$(O)\ConServer.lib \
$(WINCORE_OBJ_PATH)\console\open\src\interactivity\base\lib\$(O)\ConInteractivityBaseLib.lib \
$(WINCORE_OBJ_PATH)\console\open\src\interactivity\win32\lib\$(O)\ConInteractivityWin32Lib.lib \
@@ -107,7 +108,7 @@ DELAYLOAD = \
OLEAUT32.dll; \
icu.dll; \
api-ms-win-mm-playsound-l1.dll; \
ext-ms-win-imm-l1-1-0.lib; \
ext-ms-win-imm-l1.dll; \
api-ms-win-shcore-scaling-l1.dll; \
api-ms-win-shell-dataobject-l1.dll; \
api-ms-win-shell-namespace-l1.dll; \
@@ -137,6 +138,7 @@ DELAYLOAD = \
ext-ms-win-rtcore-ntuser-sysparams-l1.dll; \
ext-ms-win-rtcore-ntuser-window-ext-l1.dll; \
ext-ms-win-rtcore-ntuser-winstamin-l1.dll; \
ext-ms-win-rtcore-ntuser-syscolors-l1.dll; \
ext-ms-win-shell-shell32-l1.dll; \
ext-ms-win-uiacore-l1.dll; \
ext-ms-win-uxtheme-themes-l1.dll; \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -63,24 +63,19 @@ static constexpr bool _isWheelMsg(const unsigned int buttonCode) noexcept
}
// Routine Description:
// - Determines if the input windows message code describes a button press
// (either down or doubleclick)
// - Determines if the input windows message code describes a button release
// Parameters:
// - button - the message to decode.
// Return value:
// - true if button is a button down event
static constexpr bool _isButtonDown(const unsigned int button) noexcept
// - true if button is a button up event
static constexpr bool _isButtonUp(const unsigned int button) noexcept
{
switch (button)
{
case WM_LBUTTONDBLCLK:
case WM_LBUTTONDOWN:
case WM_RBUTTONDOWN:
case WM_RBUTTONDBLCLK:
case WM_MBUTTONDOWN:
case WM_MBUTTONDBLCLK:
case WM_MOUSEWHEEL:
case WM_MOUSEHWHEEL:
case WM_LBUTTONUP:
case WM_RBUTTONUP:
case WM_MBUTTONUP:
case WM_XBUTTONUP:
return true;
default:
return false;
@@ -372,7 +367,7 @@ TerminalInput::OutputType TerminalInput::HandleMouse(const til::point position,
// then we want to handle hovers with WM_MOUSEMOVE.
// However, if we're dragging (WM_MOUSEMOVE with a button pressed),
// then use that pressed button instead.
return _GenerateSGRSequence(position, physicalButtonPressed ? realButton : button, _isButtonDown(realButton), isHover, modifierKeyState, delta);
return _GenerateSGRSequence(position, physicalButtonPressed ? realButton : button, _isButtonUp(button), isHover, modifierKeyState, delta);
}
else
{
@@ -463,18 +458,18 @@ TerminalInput::OutputType TerminalInput::_GenerateUtf8Sequence(const til::point
// Parameters:
// - position - The windows coordinates (top,left = 0,0) of the mouse event
// - button - the message to decode. WM_MOUSEMOVE is used for mouse hovers with no buttons pressed.
// - isDown - true if a mouse button was pressed.
// - isRelease - true if a mouse button was released.
// - isHover - true if the sequence is generated in response to a mouse hover
// - modifierKeyState - the modifier keys pressed with this button
// - delta - the amount that the scroll wheel changed (should be 0 unless button is a WM_MOUSE*WHEEL)
// - ppwchSequence - On success, where to put the pointer to the generated sequence
// - pcchLength - On success, where to put the length of the generated sequence
TerminalInput::OutputType TerminalInput::_GenerateSGRSequence(const til::point position, const unsigned int button, const bool isDown, const bool isHover, const short modifierKeyState, const short delta)
TerminalInput::OutputType TerminalInput::_GenerateSGRSequence(const til::point position, const unsigned int button, const bool isRelease, const bool isHover, const short modifierKeyState, const short delta)
{
// Format for SGR events is:
// "\x1b[<%d;%d;%d;%c", xButton, x+1, y+1, fButtonDown? 'M' : 'm'
// "\x1b[<%d;%d;%d;%c", xButton, x+1, y+1, isRelease? 'm' : 'M'
const auto xbutton = _windowsButtonToSGREncoding(button, isHover, modifierKeyState, delta);
return fmt::format(FMT_COMPILE(L"{}<{};{};{}{}"), _csi, xbutton, position.x + 1, position.y + 1, isDown ? L'M' : L'm');
return fmt::format(FMT_COMPILE(L"{}<{};{};{}{}"), _csi, xbutton, position.x + 1, position.y + 1, isRelease ? L'm' : L'M');
}
// Routine Description:

View File

@@ -109,7 +109,7 @@ namespace Microsoft::Console::VirtualTerminal
#pragma region MouseInput
[[nodiscard]] OutputType _GenerateDefaultSequence(til::point position, unsigned int button, bool isHover, short modifierKeyState, short delta);
[[nodiscard]] OutputType _GenerateUtf8Sequence(til::point position, unsigned int button, bool isHover, short modifierKeyState, short delta);
[[nodiscard]] OutputType _GenerateSGRSequence(til::point position, unsigned int button, bool isDown, bool isHover, short modifierKeyState, short delta);
[[nodiscard]] OutputType _GenerateSGRSequence(til::point position, unsigned int button, bool isRelease, bool isHover, short modifierKeyState, short delta);
[[nodiscard]] OutputType _makeAlternateScrollOutput(short delta) const;

View File

@@ -3,7 +3,7 @@
# - Console Virtual Terminal Parser Fuzzer
# -------------------------------------
!include $(PROJECT_ROOT)\vcpkg\consume.inc
!include ..\..\..\..\..\vcpkg\consume.inc
# This program will generate fuzz input for the parsing engine
# and is to be used in conjunction with the fuzz wrapper tool.
@@ -27,6 +27,8 @@ TEST_CODE = 1
USE_UNICRT = 1
USE_MSVCRT = 1
NO_WCHAR_T = 1 # use native wchar_t
USE_CXX17_STD_BYTE = 1 # Windows disables std::byte by default...
USE_STL = 1
STL_VER = STL_VER_CURRENT
@@ -47,6 +49,7 @@ C_DEFINES = $(C_DEFINES) -DUNICODE -D_UNICODE
USE_STD_CPP20 = 1
MSC_WARNING_LEVEL = /W4 /WX
USER_C_FLAGS = $(USER_C_FLAGS) /Zc:preprocessor /fp:contract /utf-8
# -------------------------------------
# Build System Settings
@@ -68,7 +71,6 @@ SOURCES = \
INCLUDES = \
..\..\..\inc; \
$(CONSOLE_SRC_PATH)\..\oss\chromium; \
$(CONSOLE_SRC_PATH)\..\oss\fmt\include; \
$(CONSOLE_SRC_PATH)\..\oss\interval_tree; \
$(INCLUDES) \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -60,6 +60,7 @@ INCLUDES = \
TARGETLIBS = \
$(TARGETLIBS) \
$(ONECORE_EXTERNAL_SDK_LIB_PATH)\ntdll.lib \
$(ONECORE_EXTERNAL_SDK_LIB_VPATH_L)\onecore.lib \
$(OBJ_PATH)\..\lib\$(O)\ConTermParser.lib \
$(OBJ_PATH)\..\..\..\types\lib\$(O)\ConTypes.lib \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -38,7 +38,7 @@ TARGETLIBS = \
$(ONECOREUAP_EXTERNAL_SDK_LIB_PATH)\d3d11.lib \
$(ONECOREUAP_EXTERNAL_SDK_LIB_PATH)\d3dcompiler.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\api-ms-win-mm-playsound-l1.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-imm-l1-1-0.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-imm-l1.lib \
$(ONECORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-dwmapi-ext-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-gdi-dc-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-gdi-dc-create-l1.lib \
@@ -63,12 +63,14 @@ TARGETLIBS = \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-sysparams-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-window-ext-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-winstamin-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-rtcore-ntuser-syscolors-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-shell-shell32-l1.lib \
$(MINCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-uxtheme-themes-l1.lib \
$(ONECORESHELL_INTERNAL_LIB_VPATH_L)\api-ms-win-shell-dataobject-l1.lib \
$(ONECORESHELL_INTERNAL_LIB_VPATH_L)\api-ms-win-shell-namespace-l1.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-uiacore-l1.lib \
$(MODERNCORE_INTERNAL_PRIV_SDK_LIB_VPATH_L)\ext-ms-win-usp10-l1.lib \
$(ONECORE_EXTERNAL_SDK_LIB_PATH)\ntdll.lib \
$(WINCORE_OBJ_PATH)\console\conint\$(O)\conint.lib \
$(CONSOLE_OBJ_PATH)\buffer\out\lib\$(O)\conbufferout.lib \
$(CONSOLE_OBJ_PATH)\host\lib\$(O)\conhostv2.lib \
@@ -80,7 +82,6 @@ TARGETLIBS = \
$(CONSOLE_OBJ_PATH)\renderer\base\lib\$(O)\ConRenderBase.lib \
$(CONSOLE_OBJ_PATH)\renderer\gdi\lib\$(O)\ConRenderGdi.lib \
$(CONSOLE_OBJ_PATH)\renderer\wddmcon\lib\$(O)\ConRenderWddmCon.lib \
$(CONSOLE_OBJ_PATH)\renderer\vt\lib\$(O)\ConRenderVt.lib \
$(CONSOLE_OBJ_PATH)\audio\midi\lib\$(O)\ConAudioMidi.lib \
$(CONSOLE_OBJ_PATH)\server\lib\$(O)\ConServer.lib \
$(CONSOLE_OBJ_PATH)\interactivity\base\lib\$(O)\ConInteractivityBaseLib.lib \
@@ -98,7 +99,7 @@ DELAYLOAD = \
OLEAUT32.dll; \
icu.dll; \
api-ms-win-mm-playsound-l1.dll; \
ext-ms-win-imm-l1-1-0.lib; \
ext-ms-win-imm-l1.dll; \
api-ms-win-shcore-scaling-l1.dll; \
api-ms-win-shell-dataobject-l1.dll; \
api-ms-win-shell-namespace-l1.dll; \
@@ -129,6 +130,7 @@ DELAYLOAD = \
ext-ms-win-rtcore-ntuser-sysparams-l1.dll; \
ext-ms-win-rtcore-ntuser-window-ext-l1.dll; \
ext-ms-win-rtcore-ntuser-winstamin-l1.dll; \
ext-ms-win-rtcore-ntuser-syscolors-l1.dll; \
ext-ms-win-shell-shell32-l1.dll; \
ext-ms-win-uiacore-l1.dll; \
ext-ms-win-usp10-l1.dll; \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,12 +1,20 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#define NOMINMAX
#include <Windows.h>
#ifndef __INSIDE_WINDOWS
#define CONPTY_IMPEXP
#include <conpty-static.h>
#else // Building inside Windows, just use the kernel32 ones.
#define ConptyCreatePseudoConsole CreatePseudoConsole
#define ConptyReleasePseudoConsole ReleasePseudoConsole
#define ConptyResizePseudoConsole ResizePseudoConsole
#endif
#include <wil/win32_helpers.h>

View File

@@ -1,3 +1,6 @@
!include $(PROJECT_ROOT)\core\console\vcpkg\consume.inc
USE_STD_CPP20 = 1
MSC_WARNING_LEVEL=/W4 /WX
@@ -18,8 +21,10 @@ USE_NATIVE_EH = 1
C_DEFINES=-DUNICODE -D__INSIDE_WINDOWS
TARGETLIBS=\
$(TARGETLIBS) \
$(MINWIN_EXTERNAL_SDK_LIB_PATH_L)\ntdll.lib \
$(ONECORE_EXTERNAL_SDK_LIB_VPATH_L)\onecore.lib
$(ONECORE_EXTERNAL_SDK_LIB_VPATH_L)\onecore.lib \
$(WINCORE_OBJ_PATH)\console\open\src\types\lib\$(O)\ConTypes.lib \
SOURCES=main.cpp \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \

View File

@@ -25,6 +25,7 @@ INCLUDES = \
TARGETLIBS = \
$(WINCORE_OBJ_PATH)\console\open\src\types\lib\$(O)\ConTypes.lib \
$(ONECORE_EXTERNAL_SDK_LIB_PATH)\ntdll.lib \
$(TARGETLIBS) \
# -------------------------------------

View File

@@ -1,3 +1,3 @@
BUILD_PASS1_CONSUMES= \
onecore\windows\vcpkg|PASS1 \
onecore\windows\core\console\vcpkg|PASS1 \