├── .gitignore ├── XAMLIslands ├── targetver.h ├── small.ico ├── XAMLIslands.rc ├── XAMLIslands.ico ├── packages.config ├── XAMLIslands.xaml ├── app.manifest ├── resource.h ├── XAMLIslands.vcxproj.filters ├── XAMLIslands.cpp └── XAMLIslands.vcxproj ├── MFC ├── MFC.rc ├── res │ ├── MFC.ico │ └── MFC.rc2 ├── pch.cpp ├── targetver.h ├── MFC.h ├── pch.h ├── resource.h ├── MFCDlg.h ├── framework.h ├── MFC.vcxproj.filters ├── MFC.cpp ├── MFCDlg.cpp └── MFC.vcxproj ├── WebView2 ├── small.ico ├── WebView2.ico ├── WebView2.rc ├── packages.config ├── targetver.h ├── Resource.h ├── WebView2.vcxproj.filters ├── WebView2.cpp └── WebView2.vcxproj ├── README.md ├── .editorconfig ├── LICENSE └── UIExperiments.sln /.gitignore: -------------------------------------------------------------------------------- 1 | .vs/ 2 | x64 3 | packages/ 4 | *.user 5 | -------------------------------------------------------------------------------- /XAMLIslands/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | -------------------------------------------------------------------------------- /MFC/MFC.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kebby/UI-Experiments/HEAD/MFC/MFC.rc -------------------------------------------------------------------------------- /MFC/res/MFC.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kebby/UI-Experiments/HEAD/MFC/res/MFC.ico -------------------------------------------------------------------------------- /MFC/res/MFC.rc2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kebby/UI-Experiments/HEAD/MFC/res/MFC.rc2 -------------------------------------------------------------------------------- /WebView2/small.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kebby/UI-Experiments/HEAD/WebView2/small.ico -------------------------------------------------------------------------------- /WebView2/WebView2.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kebby/UI-Experiments/HEAD/WebView2/WebView2.ico -------------------------------------------------------------------------------- /WebView2/WebView2.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kebby/UI-Experiments/HEAD/WebView2/WebView2.rc -------------------------------------------------------------------------------- /XAMLIslands/small.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kebby/UI-Experiments/HEAD/XAMLIslands/small.ico -------------------------------------------------------------------------------- /XAMLIslands/XAMLIslands.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kebby/UI-Experiments/HEAD/XAMLIslands/XAMLIslands.rc -------------------------------------------------------------------------------- /XAMLIslands/XAMLIslands.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kebby/UI-Experiments/HEAD/XAMLIslands/XAMLIslands.ico -------------------------------------------------------------------------------- /MFC/pch.cpp: -------------------------------------------------------------------------------- 1 | // pch.cpp: source file corresponding to the pre-compiled header 2 | 3 | #include "pch.h" 4 | 5 | // When you are using pre-compiled headers, this source file is necessary for compilation to succeed. 6 | -------------------------------------------------------------------------------- /XAMLIslands/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /WebView2/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /MFC/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /WebView2/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // // Including SDKDDKVer.h defines the highest available Windows platform. 4 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 5 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 6 | #include 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # UI-Experiments 2 | Lets try out a few ways to easily create a modern Win32 UI app 3 | 4 | This is a VS2019 solution with a handful of single projects, each one tries out another UI framework. 5 | 6 | ## Build instructions 7 | 8 | Currently, just open the solution, update NuGet packages, and build. Will update when there's things to install 9 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: https://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Unix-style newlines with a newline ending every file 7 | [*] 8 | end_of_line = crlf 9 | insert_final_newline = true 10 | 11 | # Matches multiple files with brace expansion notation 12 | # Set default charset 13 | [*.{c,cpp,h}] 14 | charset = utf-8 15 | indent_style = space 16 | indent_size = 4 17 | -------------------------------------------------------------------------------- /MFC/MFC.h: -------------------------------------------------------------------------------- 1 | 2 | // MFC.h : main header file for the PROJECT_NAME application 3 | // 4 | 5 | #pragma once 6 | 7 | #ifndef __AFXWIN_H__ 8 | #error "include 'pch.h' before including this file for PCH" 9 | #endif 10 | 11 | #include "resource.h" // main symbols 12 | 13 | 14 | // CMFCApp: 15 | // See MFC.cpp for the implementation of this class 16 | // 17 | 18 | class CMFCApp : public CWinApp 19 | { 20 | public: 21 | CMFCApp(); 22 | 23 | // Overrides 24 | public: 25 | virtual BOOL InitInstance(); 26 | 27 | // Implementation 28 | 29 | DECLARE_MESSAGE_MAP() 30 | }; 31 | 32 | extern CMFCApp theApp; 33 | -------------------------------------------------------------------------------- /MFC/pch.h: -------------------------------------------------------------------------------- 1 | // pch.h: This is a precompiled header file. 2 | // Files listed below are compiled only once, improving build performance for future builds. 3 | // This also affects IntelliSense performance, including code completion and many code browsing features. 4 | // However, files listed here are ALL re-compiled if any one of them is updated between builds. 5 | // Do not add files here that you will be updating frequently as this negates the performance advantage. 6 | 7 | #ifndef PCH_H 8 | #define PCH_H 9 | 10 | // add headers that you want to pre-compile here 11 | #include "framework.h" 12 | 13 | #endif //PCH_H 14 | -------------------------------------------------------------------------------- /XAMLIslands/XAMLIslands.xaml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /MFC/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by MFC.rc 4 | // 5 | #define IDM_ABOUTBOX 0x0010 6 | #define IDD_ABOUTBOX 100 7 | #define IDS_ABOUTBOX 101 8 | #define IDD_MFC_DIALOG 102 9 | #define IDR_MAINFRAME 128 10 | #define IDC_COMBO1 1000 11 | #define IDC_MFCCOLORBUTTON1 1003 12 | 13 | // Next default values for new objects 14 | // 15 | #ifdef APSTUDIO_INVOKED 16 | #ifndef APSTUDIO_READONLY_SYMBOLS 17 | #define _APS_NEXT_RESOURCE_VALUE 130 18 | #define _APS_NEXT_COMMAND_VALUE 32771 19 | #define _APS_NEXT_CONTROL_VALUE 1004 20 | #define _APS_NEXT_SYMED_VALUE 101 21 | #endif 22 | #endif 23 | -------------------------------------------------------------------------------- /MFC/MFCDlg.h: -------------------------------------------------------------------------------- 1 | 2 | // MFCDlg.h : header file 3 | // 4 | 5 | #pragma once 6 | 7 | 8 | // CMFCDlg dialog 9 | class CMFCDlg : public CDialogEx 10 | { 11 | // Construction 12 | public: 13 | CMFCDlg(CWnd* pParent = nullptr); // standard constructor 14 | 15 | // Dialog Data 16 | #ifdef AFX_DESIGN_TIME 17 | enum { IDD = IDD_MFC_DIALOG }; 18 | #endif 19 | 20 | protected: 21 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 22 | 23 | 24 | // Implementation 25 | protected: 26 | HICON m_hIcon; 27 | 28 | // Generated message map functions 29 | virtual BOOL OnInitDialog(); 30 | afx_msg void OnSysCommand(UINT nID, LPARAM lParam); 31 | afx_msg void OnPaint(); 32 | afx_msg HCURSOR OnQueryDragIcon(); 33 | DECLARE_MESSAGE_MAP() 34 | public: 35 | CComboBox Testbox; 36 | virtual void OnOK(); 37 | }; 38 | -------------------------------------------------------------------------------- /XAMLIslands/app.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | true 15 | PerMonitorV2 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /WebView2/Resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by WebView2.rc 4 | 5 | #define IDS_APP_TITLE 103 6 | 7 | #define IDR_MAINFRAME 128 8 | #define IDD_WEBVIEW2_DIALOG 102 9 | #define IDD_ABOUTBOX 103 10 | #define IDM_ABOUT 104 11 | #define IDM_EXIT 105 12 | #define IDI_WEBVIEW2 107 13 | #define IDI_SMALL 108 14 | #define IDC_WEBVIEW2 109 15 | #define IDC_MYICON 2 16 | #ifndef IDC_STATIC 17 | #define IDC_STATIC -1 18 | #endif 19 | // Next default values for new objects 20 | // 21 | #ifdef APSTUDIO_INVOKED 22 | #ifndef APSTUDIO_READONLY_SYMBOLS 23 | 24 | #define _APS_NO_MFC 130 25 | #define _APS_NEXT_RESOURCE_VALUE 129 26 | #define _APS_NEXT_COMMAND_VALUE 32771 27 | #define _APS_NEXT_CONTROL_VALUE 1000 28 | #define _APS_NEXT_SYMED_VALUE 110 29 | #endif 30 | #endif 31 | -------------------------------------------------------------------------------- /XAMLIslands/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by XAMLIslands.rc 4 | // 5 | #define IDC_MYICON 2 6 | #define IDD_XAMLISLANDS_DIALOG 102 7 | #define IDS_APP_TITLE 103 8 | #define IDM_ABOUT 104 9 | #define IDI_XAMLISLANDS 107 10 | #define IDI_SMALL 108 11 | #define IDC_XAMLISLANDS 109 12 | #define IDR_MAINFRAME 128 13 | #define IDC_STATIC -1 14 | 15 | // Next default values for new objects 16 | // 17 | #ifdef APSTUDIO_INVOKED 18 | #ifndef APSTUDIO_READONLY_SYMBOLS 19 | #define _APS_NO_MFC 1 20 | #define _APS_NEXT_RESOURCE_VALUE 132 21 | #define _APS_NEXT_COMMAND_VALUE 32771 22 | #define _APS_NEXT_CONTROL_VALUE 1000 23 | #define _APS_NEXT_SYMED_VALUE 110 24 | #endif 25 | #endif 26 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /MFC/framework.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifndef VC_EXTRALEAN 4 | #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers 5 | #endif 6 | 7 | #include "targetver.h" 8 | 9 | #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit 10 | 11 | // turns off MFC's hiding of some common and often safely ignored warning messages 12 | #define _AFX_ALL_WARNINGS 13 | 14 | #include // MFC core and standard components 15 | #include // MFC extensions 16 | 17 | 18 | #include // MFC Automation classes 19 | 20 | 21 | 22 | #ifndef _AFX_NO_OLE_SUPPORT 23 | #include // MFC support for Internet Explorer 4 Common Controls 24 | #endif 25 | #ifndef _AFX_NO_AFXCMN_SUPPORT 26 | #include // MFC support for Windows Common Controls 27 | #endif // _AFX_NO_AFXCMN_SUPPORT 28 | 29 | #include // MFC support for ribbons and control bars 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | #ifdef _UNICODE 40 | #if defined _M_IX86 41 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") 42 | #elif defined _M_X64 43 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") 44 | #else 45 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") 46 | #endif 47 | #endif 48 | 49 | 50 | -------------------------------------------------------------------------------- /WebView2/WebView2.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | 26 | 27 | Source Files 28 | 29 | 30 | 31 | 32 | Resource Files 33 | 34 | 35 | 36 | 37 | Resource Files 38 | 39 | 40 | Resource Files 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /XAMLIslands/XAMLIslands.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | 26 | 27 | Source Files 28 | 29 | 30 | 31 | 32 | Resource Files 33 | 34 | 35 | 36 | 37 | Resource Files 38 | 39 | 40 | Resource Files 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /MFC/MFC.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Header Files 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | Header Files 29 | 30 | 31 | Header Files 32 | 33 | 34 | Header Files 35 | 36 | 37 | 38 | 39 | Source Files 40 | 41 | 42 | Source Files 43 | 44 | 45 | Source Files 46 | 47 | 48 | 49 | 50 | Resource Files 51 | 52 | 53 | 54 | 55 | Resource Files 56 | 57 | 58 | 59 | 60 | Resource Files 61 | 62 | 63 | -------------------------------------------------------------------------------- /UIExperiments.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29613.14 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XAMLIslands", "XAMLIslands\XAMLIslands.vcxproj", "{1A747828-A4B9-4827-B24F-E662A1A7D292}" 7 | EndProject 8 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2F10E69B-D886-43A7-9618-D4A53A0E67E2}" 9 | ProjectSection(SolutionItems) = preProject 10 | .editorconfig = .editorconfig 11 | .gitignore = .gitignore 12 | LICENSE = LICENSE 13 | README.md = README.md 14 | EndProjectSection 15 | EndProject 16 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebView2", "WebView2\WebView2.vcxproj", "{D6A736D3-225E-4509-B13B-DC03EEB83B4A}" 17 | EndProject 18 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MFC", "MFC\MFC.vcxproj", "{21596531-F3CD-483F-9063-94035B85FD0E}" 19 | EndProject 20 | Global 21 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 22 | Debug|x64 = Debug|x64 23 | Debug|x86 = Debug|x86 24 | Release|x64 = Release|x64 25 | Release|x86 = Release|x86 26 | EndGlobalSection 27 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 28 | {1A747828-A4B9-4827-B24F-E662A1A7D292}.Debug|x64.ActiveCfg = Debug|x64 29 | {1A747828-A4B9-4827-B24F-E662A1A7D292}.Debug|x64.Build.0 = Debug|x64 30 | {1A747828-A4B9-4827-B24F-E662A1A7D292}.Debug|x86.ActiveCfg = Debug|x64 31 | {1A747828-A4B9-4827-B24F-E662A1A7D292}.Release|x64.ActiveCfg = Release|x64 32 | {1A747828-A4B9-4827-B24F-E662A1A7D292}.Release|x64.Build.0 = Release|x64 33 | {1A747828-A4B9-4827-B24F-E662A1A7D292}.Release|x86.ActiveCfg = Release|x64 34 | {D6A736D3-225E-4509-B13B-DC03EEB83B4A}.Debug|x64.ActiveCfg = Debug|x64 35 | {D6A736D3-225E-4509-B13B-DC03EEB83B4A}.Debug|x64.Build.0 = Debug|x64 36 | {D6A736D3-225E-4509-B13B-DC03EEB83B4A}.Debug|x86.ActiveCfg = Debug|x64 37 | {D6A736D3-225E-4509-B13B-DC03EEB83B4A}.Release|x64.ActiveCfg = Release|x64 38 | {D6A736D3-225E-4509-B13B-DC03EEB83B4A}.Release|x64.Build.0 = Release|x64 39 | {D6A736D3-225E-4509-B13B-DC03EEB83B4A}.Release|x86.ActiveCfg = Release|x64 40 | {21596531-F3CD-483F-9063-94035B85FD0E}.Debug|x64.ActiveCfg = Debug|x64 41 | {21596531-F3CD-483F-9063-94035B85FD0E}.Debug|x64.Build.0 = Debug|x64 42 | {21596531-F3CD-483F-9063-94035B85FD0E}.Debug|x86.ActiveCfg = Debug|Win32 43 | {21596531-F3CD-483F-9063-94035B85FD0E}.Debug|x86.Build.0 = Debug|Win32 44 | {21596531-F3CD-483F-9063-94035B85FD0E}.Release|x64.ActiveCfg = Release|x64 45 | {21596531-F3CD-483F-9063-94035B85FD0E}.Release|x64.Build.0 = Release|x64 46 | {21596531-F3CD-483F-9063-94035B85FD0E}.Release|x86.ActiveCfg = Release|Win32 47 | {21596531-F3CD-483F-9063-94035B85FD0E}.Release|x86.Build.0 = Release|Win32 48 | EndGlobalSection 49 | GlobalSection(SolutionProperties) = preSolution 50 | HideSolutionNode = FALSE 51 | EndGlobalSection 52 | GlobalSection(ExtensibilityGlobals) = postSolution 53 | SolutionGuid = {3B72436B-C0B9-48F5-B9A5-2858102B9318} 54 | EndGlobalSection 55 | EndGlobal 56 | -------------------------------------------------------------------------------- /MFC/MFC.cpp: -------------------------------------------------------------------------------- 1 | 2 | // MFC.cpp : Defines the class behaviors for the application. 3 | // 4 | 5 | #include "pch.h" 6 | #include "framework.h" 7 | #include "MFC.h" 8 | #include "MFCDlg.h" 9 | 10 | #ifdef _DEBUG 11 | #define new DEBUG_NEW 12 | #endif 13 | 14 | 15 | // CMFCApp 16 | 17 | BEGIN_MESSAGE_MAP(CMFCApp, CWinApp) 18 | ON_COMMAND(ID_HELP, &CWinApp::OnHelp) 19 | END_MESSAGE_MAP() 20 | 21 | 22 | // CMFCApp construction 23 | 24 | CMFCApp::CMFCApp() 25 | { 26 | // support Restart Manager 27 | m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; 28 | 29 | // TODO: add construction code here, 30 | // Place all significant initialization in InitInstance 31 | } 32 | 33 | 34 | // The one and only CMFCApp object 35 | 36 | CMFCApp theApp; 37 | 38 | 39 | // CMFCApp initialization 40 | 41 | BOOL CMFCApp::InitInstance() 42 | { 43 | // InitCommonControlsEx() is required on Windows XP if an application 44 | // manifest specifies use of ComCtl32.dll version 6 or later to enable 45 | // visual styles. Otherwise, any window creation will fail. 46 | INITCOMMONCONTROLSEX InitCtrls; 47 | InitCtrls.dwSize = sizeof(InitCtrls); 48 | // Set this to include all the common control classes you want to use 49 | // in your application. 50 | InitCtrls.dwICC = ICC_WIN95_CLASSES; 51 | InitCommonControlsEx(&InitCtrls); 52 | 53 | CWinApp::InitInstance(); 54 | 55 | 56 | AfxEnableControlContainer(); 57 | 58 | // Create the shell manager, in case the dialog contains 59 | // any shell tree view or shell list view controls. 60 | CShellManager *pShellManager = new CShellManager; 61 | 62 | // Activate "Windows Native" visual manager for enabling themes in MFC controls 63 | CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows7)); 64 | 65 | // Standard initialization 66 | // If you are not using these features and wish to reduce the size 67 | // of your final executable, you should remove from the following 68 | // the specific initialization routines you do not need 69 | // Change the registry key under which our settings are stored 70 | // TODO: You should modify this string to be something appropriate 71 | // such as the name of your company or organization 72 | SetRegistryKey(_T("Local AppWizard-Generated Applications")); 73 | 74 | CMFCDlg dlg; 75 | m_pMainWnd = &dlg; 76 | INT_PTR nResponse = dlg.DoModal(); 77 | if (nResponse == IDOK) 78 | { 79 | // TODO: Place code here to handle when the dialog is 80 | // dismissed with OK 81 | } 82 | else if (nResponse == IDCANCEL) 83 | { 84 | // TODO: Place code here to handle when the dialog is 85 | // dismissed with Cancel 86 | } 87 | else if (nResponse == -1) 88 | { 89 | TRACE(traceAppMsg, 0, "Warning: dialog creation failed, so application is terminating unexpectedly.\n"); 90 | TRACE(traceAppMsg, 0, "Warning: if you are using MFC controls on the dialog, you cannot #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS.\n"); 91 | } 92 | 93 | // Delete the shell manager created above. 94 | if (pShellManager != nullptr) 95 | { 96 | delete pShellManager; 97 | } 98 | 99 | #if !defined(_AFXDLL) && !defined(_AFX_NO_MFC_CONTROLS_IN_DIALOGS) 100 | ControlBarCleanUp(); 101 | #endif 102 | 103 | // Since the dialog has been closed, return FALSE so that we exit the 104 | // application, rather than start the application's message pump. 105 | return FALSE; 106 | } 107 | 108 | -------------------------------------------------------------------------------- /MFC/MFCDlg.cpp: -------------------------------------------------------------------------------- 1 | 2 | // MFCDlg.cpp : implementation file 3 | // 4 | 5 | #include "pch.h" 6 | #include "framework.h" 7 | #include "MFC.h" 8 | #include "MFCDlg.h" 9 | #include "afxdialogex.h" 10 | 11 | #ifdef _DEBUG 12 | #define new DEBUG_NEW 13 | #endif 14 | 15 | 16 | // CAboutDlg dialog used for App About 17 | 18 | class CAboutDlg : public CDialogEx 19 | { 20 | public: 21 | CAboutDlg(); 22 | 23 | // Dialog Data 24 | #ifdef AFX_DESIGN_TIME 25 | enum { IDD = IDD_ABOUTBOX }; 26 | #endif 27 | 28 | protected: 29 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 30 | 31 | // Implementation 32 | protected: 33 | DECLARE_MESSAGE_MAP() 34 | }; 35 | 36 | CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX) 37 | { 38 | } 39 | 40 | void CAboutDlg::DoDataExchange(CDataExchange* pDX) 41 | { 42 | CDialogEx::DoDataExchange(pDX); 43 | } 44 | 45 | BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) 46 | END_MESSAGE_MAP() 47 | 48 | 49 | // CMFCDlg dialog 50 | 51 | 52 | 53 | CMFCDlg::CMFCDlg(CWnd* pParent /*=nullptr*/) 54 | : CDialogEx(IDD_MFC_DIALOG, pParent) 55 | { 56 | m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); 57 | } 58 | 59 | void CMFCDlg::DoDataExchange(CDataExchange* pDX) 60 | { 61 | CDialogEx::DoDataExchange(pDX); 62 | DDX_Control(pDX, IDC_COMBO1, Testbox); 63 | 64 | Testbox.AddString(L"eins"); 65 | Testbox.SetCurSel(0); 66 | Testbox.AddString(L"zwei"); 67 | } 68 | 69 | BEGIN_MESSAGE_MAP(CMFCDlg, CDialogEx) 70 | ON_WM_SYSCOMMAND() 71 | ON_WM_PAINT() 72 | ON_WM_QUERYDRAGICON() 73 | END_MESSAGE_MAP() 74 | 75 | 76 | // CMFCDlg message handlers 77 | 78 | BOOL CMFCDlg::OnInitDialog() 79 | { 80 | CDialogEx::OnInitDialog(); 81 | 82 | // Add "About..." menu item to system menu. 83 | 84 | // IDM_ABOUTBOX must be in the system command range. 85 | ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); 86 | ASSERT(IDM_ABOUTBOX < 0xF000); 87 | 88 | CMenu* pSysMenu = GetSystemMenu(FALSE); 89 | if (pSysMenu != nullptr) 90 | { 91 | BOOL bNameValid; 92 | CString strAboutMenu; 93 | bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); 94 | ASSERT(bNameValid); 95 | if (!strAboutMenu.IsEmpty()) 96 | { 97 | pSysMenu->AppendMenu(MF_SEPARATOR); 98 | pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); 99 | } 100 | } 101 | 102 | // Set the icon for this dialog. The framework does this automatically 103 | // when the application's main window is not a dialog 104 | SetIcon(m_hIcon, TRUE); // Set big icon 105 | SetIcon(m_hIcon, FALSE); // Set small icon 106 | 107 | // TODO: Add extra initialization here 108 | 109 | return TRUE; // return TRUE unless you set the focus to a control 110 | } 111 | 112 | void CMFCDlg::OnSysCommand(UINT nID, LPARAM lParam) 113 | { 114 | if ((nID & 0xFFF0) == IDM_ABOUTBOX) 115 | { 116 | CAboutDlg dlgAbout; 117 | dlgAbout.DoModal(); 118 | } 119 | else 120 | { 121 | CDialogEx::OnSysCommand(nID, lParam); 122 | } 123 | } 124 | 125 | // If you add a minimize button to your dialog, you will need the code below 126 | // to draw the icon. For MFC applications using the document/view model, 127 | // this is automatically done for you by the framework. 128 | 129 | void CMFCDlg::OnPaint() 130 | { 131 | if (IsIconic()) 132 | { 133 | CPaintDC dc(this); // device context for painting 134 | 135 | SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0); 136 | 137 | // Center icon in client rectangle 138 | int cxIcon = GetSystemMetrics(SM_CXICON); 139 | int cyIcon = GetSystemMetrics(SM_CYICON); 140 | CRect rect; 141 | GetClientRect(&rect); 142 | int x = (rect.Width() - cxIcon + 1) / 2; 143 | int y = (rect.Height() - cyIcon + 1) / 2; 144 | 145 | // Draw the icon 146 | dc.DrawIcon(x, y, m_hIcon); 147 | } 148 | else 149 | { 150 | CDialogEx::OnPaint(); 151 | } 152 | } 153 | 154 | // The system calls this function to obtain the cursor to display while the user drags 155 | // the minimized window. 156 | HCURSOR CMFCDlg::OnQueryDragIcon() 157 | { 158 | return static_cast(m_hIcon); 159 | } 160 | 161 | 162 | 163 | void CMFCDlg::OnOK() 164 | { 165 | // TODO: Add your specialized code here and/or call the base class 166 | int sel = Testbox.GetCurSel(); 167 | CDialogEx::OnOK(); 168 | } 169 | -------------------------------------------------------------------------------- /WebView2/WebView2.cpp: -------------------------------------------------------------------------------- 1 | // XAMLIslands.cpp : Defines the entry point for the application. 2 | // 3 | 4 | #include 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | #include 11 | #include 12 | #include "WebView2.h" 13 | 14 | #include "resource.h" 15 | 16 | using namespace Microsoft::WRL; 17 | 18 | // Global Variables: 19 | HINSTANCE hInst; 20 | WCHAR szTitle[256]; // The title bar text 21 | WCHAR szWindowClass[256]; // the main window class name 22 | 23 | 24 | // Pointer to WebViewController 25 | static wil::com_ptr webviewController; 26 | 27 | // Pointer to WebView window 28 | static wil::com_ptr webviewWindow; 29 | 30 | 31 | LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) 32 | { 33 | switch (message) 34 | { 35 | /* 36 | case WM_COMMAND: 37 | { 38 | int wmId = LOWORD(wParam); 39 | // Parse the menu selections: 40 | switch (wmId) 41 | { 42 | 43 | default: 44 | return DefWindowProc(hWnd, message, wParam, lParam); 45 | } 46 | } 47 | break; 48 | */ 49 | case WM_PAINT: 50 | { 51 | PAINTSTRUCT ps; 52 | HDC hdc = BeginPaint(hWnd, &ps); 53 | // TODO: Add any drawing code that uses hdc here... 54 | EndPaint(hWnd, &ps); 55 | } 56 | break; 57 | case WM_SIZE: 58 | { 59 | if (webviewController != nullptr) { 60 | RECT bounds; 61 | GetClientRect(hWnd, &bounds); 62 | webviewController->put_Bounds(bounds); 63 | }; 64 | } 65 | break; 66 | case WM_DESTROY: 67 | PostQuitMessage(0); 68 | break; 69 | default: 70 | return DefWindowProc(hWnd, message, wParam, lParam); 71 | } 72 | return 0; 73 | } 74 | 75 | 76 | int APIENTRY wWinMain(_In_ HINSTANCE hInstance, 77 | _In_opt_ HINSTANCE hPrevInstance, 78 | _In_ LPWSTR lpCmdLine, 79 | _In_ int nCmdShow) 80 | { 81 | UNREFERENCED_PARAMETER(hPrevInstance); 82 | UNREFERENCED_PARAMETER(lpCmdLine); 83 | hInst = hInstance; 84 | 85 | // TODO: Place code here. 86 | 87 | // Initialize global strings 88 | LoadStringW(hInstance, IDS_APP_TITLE, szTitle, 256); 89 | LoadStringW(hInstance, IDC_WEBVIEW2, szWindowClass, 256); 90 | 91 | WNDCLASSEXW wcex; 92 | 93 | wcex.cbSize = sizeof(WNDCLASSEX); 94 | 95 | wcex.style = CS_HREDRAW | CS_VREDRAW; 96 | wcex.lpfnWndProc = WndProc; 97 | wcex.cbClsExtra = 0; 98 | wcex.cbWndExtra = 0; 99 | wcex.hInstance = hInstance; 100 | wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WEBVIEW2)); 101 | wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); 102 | wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); 103 | wcex.lpszMenuName = NULL; 104 | wcex.lpszClassName = szWindowClass; 105 | wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); 106 | 107 | RegisterClassExW(&wcex); 108 | 109 | HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, 110 | CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr); 111 | 112 | if (!hWnd) 113 | { 114 | return FALSE; 115 | } 116 | 117 | 118 | ShowWindow(hWnd, nCmdShow); 119 | UpdateWindow(hWnd); 120 | 121 | // Step 3 - Create a single WebView within the parent window 122 | // Locate the browser and set up the environment for WebView 123 | CreateCoreWebView2EnvironmentWithOptions(nullptr, nullptr, nullptr, 124 | Callback( 125 | [hWnd](HRESULT result, ICoreWebView2Environment* env) -> HRESULT { 126 | 127 | // Create a CoreWebView2Controller and get the associated CoreWebView2 whose parent is the main window hWnd 128 | env->CreateCoreWebView2Controller(hWnd, Callback( 129 | [hWnd](HRESULT result, ICoreWebView2Controller* controller) -> HRESULT { 130 | if (controller != nullptr) { 131 | webviewController = controller; 132 | webviewController->get_CoreWebView2(&webviewWindow); 133 | } 134 | 135 | // Add a few settings for the webview 136 | // The demo step is redundant since the values are the default settings 137 | ICoreWebView2Settings* Settings; 138 | webviewWindow->get_Settings(&Settings); 139 | Settings->put_IsScriptEnabled(TRUE); 140 | Settings->put_AreDefaultScriptDialogsEnabled(TRUE); 141 | Settings->put_IsWebMessageEnabled(TRUE); 142 | 143 | // Resize WebView to fit the bounds of the parent window 144 | RECT bounds; 145 | GetClientRect(hWnd, &bounds); 146 | webviewController->put_Bounds(bounds); 147 | 148 | // Schedule an async task to navigate to Bing 149 | webviewWindow->Navigate(L"https://www.bing.com/"); 150 | 151 | // Step 4 - Navigation events 152 | 153 | // Step 5 - Scripting 154 | 155 | // Step 6 - Communication between host and web content 156 | 157 | return S_OK; 158 | }).Get()); 159 | return S_OK; 160 | }).Get()); 161 | 162 | 163 | HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WEBVIEW2)); 164 | 165 | MSG msg; 166 | 167 | // Main message loop: 168 | while (GetMessage(&msg, nullptr, 0, 0)) 169 | { 170 | if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 171 | { 172 | TranslateMessage(&msg); 173 | DispatchMessage(&msg); 174 | } 175 | } 176 | 177 | return (int)msg.wParam; 178 | } 179 | 180 | -------------------------------------------------------------------------------- /XAMLIslands/XAMLIslands.cpp: -------------------------------------------------------------------------------- 1 | // XAMLIslands.cpp : Defines the entry point for the application. 2 | // 3 | 4 | #include 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | #include "resource.h" 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | using namespace winrt; 20 | using namespace Windows::UI; 21 | using namespace Windows::UI::Composition; 22 | using namespace Windows::UI::Xaml; 23 | using namespace Windows::UI::Xaml::Hosting; 24 | using namespace Windows::UI::Xaml::Media; 25 | using namespace Windows::UI::Xaml::Controls; 26 | using namespace Windows::Foundation::Numerics; 27 | 28 | // Global Variables: 29 | HINSTANCE hInst; 30 | WCHAR szTitle[256]; // The title bar text 31 | WCHAR szWindowClass[256]; // the main window class name 32 | HWND hWndXamlIsland; 33 | 34 | LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) 35 | { 36 | switch (message) 37 | { 38 | case WM_COMMAND: 39 | { 40 | int wmId = LOWORD(wParam); 41 | // Parse the menu selections: 42 | switch (wmId) 43 | { 44 | 45 | default: 46 | return DefWindowProc(hWnd, message, wParam, lParam); 47 | } 48 | } 49 | break; 50 | case WM_PAINT: 51 | { 52 | PAINTSTRUCT ps; 53 | HDC hdc = BeginPaint(hWnd, &ps); 54 | // TODO: Add any drawing code that uses hdc here... 55 | EndPaint(hWnd, &ps); 56 | } 57 | break; 58 | case WM_SIZE: 59 | { 60 | RECT client; 61 | GetClientRect(hWnd, &client); 62 | SetWindowPos(hWndXamlIsland, 0, client.left, client.top, client.right - client.left, client.bottom - client.top, SWP_SHOWWINDOW); 63 | } 64 | break; 65 | case WM_DESTROY: 66 | PostQuitMessage(0); 67 | break; 68 | default: 69 | return DefWindowProc(hWnd, message, wParam, lParam); 70 | } 71 | return 0; 72 | } 73 | 74 | 75 | int APIENTRY wWinMain(_In_ HINSTANCE hInstance, 76 | _In_opt_ HINSTANCE hPrevInstance, 77 | _In_ LPWSTR lpCmdLine, 78 | _In_ int nCmdShow) 79 | { 80 | UNREFERENCED_PARAMETER(hPrevInstance); 81 | UNREFERENCED_PARAMETER(lpCmdLine); 82 | hInst = hInstance; 83 | 84 | // TODO: Place code here. 85 | 86 | // Initialize global strings 87 | LoadStringW(hInstance, IDS_APP_TITLE, szTitle, 256); 88 | LoadStringW(hInstance, IDC_XAMLISLANDS, szWindowClass, 256); 89 | 90 | WNDCLASSEXW wcex; 91 | 92 | wcex.cbSize = sizeof(WNDCLASSEX); 93 | 94 | wcex.style = CS_HREDRAW | CS_VREDRAW; 95 | wcex.lpfnWndProc = WndProc; 96 | wcex.cbClsExtra = 0; 97 | wcex.cbWndExtra = 0; 98 | wcex.hInstance = hInstance; 99 | wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_XAMLISLANDS)); 100 | wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); 101 | wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); 102 | wcex.lpszMenuName = NULL; 103 | wcex.lpszClassName = szWindowClass; 104 | wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); 105 | 106 | RegisterClassExW(&wcex); 107 | 108 | HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, 109 | CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr); 110 | 111 | if (!hWnd) 112 | { 113 | return FALSE; 114 | } 115 | 116 | // Begin XAML Island section. 117 | 118 | // The call to winrt::init_apartment initializes COM; by default, in a multithreaded apartment. 119 | winrt::init_apartment(apartment_type::multi_threaded); 120 | 121 | // Initialize the XAML framework's core window for the current thread. 122 | auto winxamlmanager = WindowsXamlManager::InitializeForCurrentThread(); 123 | 124 | // This DesktopWindowXamlSource is the object that enables a non-UWP desktop application 125 | // to host WinRT XAML controls in any UI element that is associated with a window handle (HWND). 126 | DesktopWindowXamlSource desktopSource; 127 | 128 | // Get handle to the core window. 129 | auto interop = desktopSource.as(); 130 | 131 | // Parent the DesktopWindowXamlSource object to the current window. 132 | check_hresult(interop->AttachToWindow(hWnd)); 133 | 134 | // This HWND will be the window handler for the XAML Island: A child window that contains XAML. 135 | hWndXamlIsland = nullptr; 136 | 137 | // Get the new child window's HWND. 138 | interop->get_WindowHandle(&hWndXamlIsland); 139 | 140 | // Update the XAML Island window size because initially it is 0,0. 141 | SetWindowPos(hWndXamlIsland, 0, 200, 100, 800, 200, SWP_SHOWWINDOW); 142 | 143 | // Create the XAML content. 144 | StackPanel panel; 145 | panel.Background(SolidColorBrush{ Colors::LightGray() }); 146 | 147 | TextBlock tb; 148 | tb.Text(L"Hello World from Xaml Islands!"); 149 | tb.VerticalAlignment(VerticalAlignment::Center); 150 | tb.HorizontalAlignment(HorizontalAlignment::Center); 151 | tb.FontSize(48); 152 | 153 | panel.Children().Append(tb); 154 | panel.UpdateLayout(); 155 | 156 | 157 | desktopSource.Content(panel); 158 | 159 | ShowWindow(hWnd, nCmdShow); 160 | UpdateWindow(hWnd); 161 | 162 | HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_XAMLISLANDS)); 163 | 164 | MSG msg; 165 | 166 | // Main message loop: 167 | while (GetMessage(&msg, nullptr, 0, 0)) 168 | { 169 | if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 170 | { 171 | TranslateMessage(&msg); 172 | DispatchMessage(&msg); 173 | } 174 | } 175 | 176 | return (int)msg.wParam; 177 | } 178 | 179 | -------------------------------------------------------------------------------- /WebView2/WebView2.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | x64 7 | 8 | 9 | Release 10 | x64 11 | 12 | 13 | 14 | 16.0 15 | Win32Proj 16 | {d6a736d3-225e-4509-b13b-dc03eeb83b4a} 17 | WebView2 18 | 10.0 19 | 20 | 21 | 22 | Application 23 | true 24 | v142 25 | Unicode 26 | 27 | 28 | Application 29 | false 30 | v142 31 | true 32 | Unicode 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | true 48 | 49 | 50 | false 51 | 52 | 53 | 54 | Level3 55 | true 56 | _DEBUG;_WINDOWS;%(PreprocessorDefinitions) 57 | true 58 | 59 | 60 | Windows 61 | true 62 | 63 | 64 | 65 | 66 | Level3 67 | true 68 | true 69 | true 70 | NDEBUG;_WINDOWS;%(PreprocessorDefinitions) 71 | true 72 | 73 | 74 | Windows 75 | true 76 | true 77 | true 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. 105 | 106 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /XAMLIslands/XAMLIslands.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Debug 8 | x64 9 | 10 | 11 | Release 12 | x64 13 | 14 | 15 | 16 | 16.0 17 | {1A747828-A4B9-4827-B24F-E662A1A7D292} 18 | Win32Proj 19 | XAMLIslands 20 | 10.0 21 | 22 | 23 | 24 | Application 25 | true 26 | v142 27 | Unicode 28 | 29 | 30 | Application 31 | false 32 | v142 33 | true 34 | Unicode 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | true 50 | 51 | 52 | false 53 | 54 | 55 | 56 | 57 | 58 | Level3 59 | true 60 | _DEBUG;_WINDOWS;%(PreprocessorDefinitions) 61 | true 62 | 63 | 64 | Windows 65 | true 66 | 67 | 68 | false 69 | app.manifest %(AdditionalManifestFiles) 70 | 71 | 72 | 73 | 74 | 75 | 76 | Level3 77 | true 78 | true 79 | true 80 | NDEBUG;_WINDOWS;%(PreprocessorDefinitions) 81 | true 82 | 83 | 84 | Windows 85 | true 86 | true 87 | true 88 | 89 | 90 | false 91 | app.manifest %(AdditionalManifestFiles) 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | ..\..\..\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.18362.0\Windows.winmd 115 | true 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. 126 | 127 | 128 | 129 | 130 | 131 | 132 | -------------------------------------------------------------------------------- /MFC/MFC.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 16.0 23 | {21596531-F3CD-483F-9063-94035B85FD0E} 24 | MFCProj 25 | MFC 26 | 10.0 27 | 28 | 29 | 30 | Application 31 | true 32 | v142 33 | Unicode 34 | Static 35 | 36 | 37 | Application 38 | false 39 | v142 40 | true 41 | Unicode 42 | Static 43 | 44 | 45 | Application 46 | true 47 | v142 48 | Unicode 49 | Static 50 | 51 | 52 | Application 53 | false 54 | v142 55 | true 56 | Unicode 57 | Static 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | true 79 | 80 | 81 | true 82 | 83 | 84 | false 85 | 86 | 87 | false 88 | 89 | 90 | 91 | Use 92 | Level3 93 | true 94 | _WINDOWS;_DEBUG;%(PreprocessorDefinitions) 95 | pch.h 96 | 97 | 98 | Windows 99 | 100 | 101 | false 102 | true 103 | _DEBUG;%(PreprocessorDefinitions) 104 | 105 | 106 | 0x0409 107 | _DEBUG;%(PreprocessorDefinitions) 108 | $(IntDir);%(AdditionalIncludeDirectories) 109 | 110 | 111 | 112 | 113 | Use 114 | Level3 115 | true 116 | WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions) 117 | pch.h 118 | 119 | 120 | Windows 121 | 122 | 123 | false 124 | true 125 | _DEBUG;%(PreprocessorDefinitions) 126 | 127 | 128 | 0x0409 129 | _DEBUG;%(PreprocessorDefinitions) 130 | $(IntDir);%(AdditionalIncludeDirectories) 131 | 132 | 133 | 134 | 135 | Use 136 | Level3 137 | true 138 | true 139 | true 140 | WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions) 141 | pch.h 142 | 143 | 144 | Windows 145 | true 146 | true 147 | DebugFull 148 | UseLinkTimeCodeGeneration 149 | 150 | 151 | false 152 | true 153 | NDEBUG;%(PreprocessorDefinitions) 154 | 155 | 156 | 0x0409 157 | NDEBUG;%(PreprocessorDefinitions) 158 | $(IntDir);%(AdditionalIncludeDirectories) 159 | 160 | 161 | 162 | 163 | Use 164 | Level3 165 | true 166 | true 167 | true 168 | _WINDOWS;NDEBUG;%(PreprocessorDefinitions) 169 | pch.h 170 | 171 | 172 | Windows 173 | true 174 | true 175 | DebugFull 176 | UseLinkTimeCodeGeneration 177 | 178 | 179 | false 180 | true 181 | NDEBUG;%(PreprocessorDefinitions) 182 | 183 | 184 | 0x0409 185 | NDEBUG;%(PreprocessorDefinitions) 186 | $(IntDir);%(AdditionalIncludeDirectories) 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | Create 202 | Create 203 | Create 204 | Create 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | --------------------------------------------------------------------------------