diff options
Diffstat (limited to 'print/OEM Printer Customization Plug-in Samples/C++/ThemeUI')
21 files changed, 3880 insertions, 0 deletions
diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/OEMUI.rc b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/OEMUI.rc new file mode 100644 index 00000000..a6491905 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/OEMUI.rc @@ -0,0 +1,169 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x40004L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "Comments", "Written by Windows Printing & Imaging Team" + VALUE "CompanyName", "Microsoft Corp." + VALUE "FileDescription", "OEM UI Test Module." + VALUE "FileVersion", "1, 0, 0, 1" + VALUE "InternalName", "OEMUI" + VALUE "LegalCopyright", "Copyright � 1998 - 2003 Microsoft Corp." + VALUE "LegalTrademarks", "Microsoft� is a registered trademark of Microsoft Corporation. Windows(TM) is a trademark of Microsoft Corporation" + VALUE "OriginalFilename", "OEMUI.dll" + VALUE "ProductName", "Microsoft OEMUI" + VALUE "ProductVersion", "1.1" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_DEVICE_PROPPAGE DIALOG 0, 0, 179, 113 +STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Device Property Page" +FONT 8, "MS Shell Dialog" +BEGIN + LTEXT "OEM UI Added Page",IDC_STATIC,55,14,68,11 + PUSHBUTTON "Calibrate",IDC_CALIBRATE,61,34,50,14 +END + +IDD_DOC_PROPPAGE DIALOG 0, 0, 210, 154 +STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Document Property Page" +FONT 8, "MS Shell Dialog" +BEGIN + LTEXT "OEM UI Document Property Page",IDC_STATIC,60,73,108,8 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_DEVICE_PROPPAGE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 172 + TOPMARGIN, 8 + BOTTOMMARGIN, 106 + END + + IDD_DOC_PROPPAGE, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 203 + TOPMARGIN, 7 + BOTTOMMARGIN, 147 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE +BEGIN + IDS_SECTION "OEM UI Added Item" + IDS_CALIBRATED "Printer has been calibrated." + IDS_NAME "OEM UI Customization DLL" + IDS_DEV_SECTION "Device Settings OEM UI Added Item" + IDS_ADV_SECTION "Advanced OEM UI Added Item" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/ThemeUI.Manifest b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/ThemeUI.Manifest new file mode 100644 index 00000000..bb48af65 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/ThemeUI.Manifest @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> +<assemblyIdentity + version=SXS_ASSEMBLY_VERSION + processorArchitecture=SXS_PROCESSOR_ARCHITECTURE + name=SXS_ASSEMBLY_NAME + type="win32" +/> +<description>Your app description here</description> +<dependency> + <dependentAssembly> + <assemblyIdentity + type="win32" + name="Microsoft.Windows.Common-Controls" + version="6.0.0.0" + processorArchitecture=SXS_PROCESSOR_ARCHITECTURE + publicKeyToken="6595b64144ccf1df" + language="*" + /> + </dependentAssembly> +</dependency> +</assembly> diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/ThemeUISmpl.vcxproj b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/ThemeUISmpl.vcxproj new file mode 100644 index 00000000..4abfd7bb --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/ThemeUISmpl.vcxproj @@ -0,0 +1,1120 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Win10 Debug|ARM64"> + <Configuration>Win10 Debug</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win10 Debug|Win32"> + <Configuration>Win10 Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win10 Debug|x64"> + <Configuration>Win10 Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win10 Release|ARM64"> + <Configuration>Win10 Release</Configuration> + <Platform>ARM64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win10 Release|Win32"> + <Configuration>Win10 Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win10 Release|x64"> + <Configuration>Win10 Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win8.1 Debug|Win32"> + <Configuration>Win8.1 Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win8 Debug|Win32"> + <Configuration>Win8 Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win7 Debug|Win32"> + <Configuration>Win7 Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win8.1 Release|Win32"> + <Configuration>Win8.1 Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win8 Release|Win32"> + <Configuration>Win8 Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win7 Release|Win32"> + <Configuration>Win7 Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win8.1 Debug|x64"> + <Configuration>Win8.1 Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win8 Debug|x64"> + <Configuration>Win8 Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win7 Debug|x64"> + <Configuration>Win7 Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win8.1 Release|x64"> + <Configuration>Win8.1 Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win8 Release|x64"> + <Configuration>Win8 Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Win7 Release|x64"> + <Configuration>Win7 Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{EA206DEA-26E6-4FD4-BF68-23F222C5E211}</ProjectGuid> + <RootNamespace>$(MSBuildProjectName)</RootNamespace> + <Configuration Condition="'$(Configuration)' == ''">Win10 Debug</Configuration> + <Platform Condition="'$(Platform)' == ''">Win32</Platform> + <SampleGuid>{7ABB810D-F51B-46DA-8A6C-6883AF316932}</SampleGuid> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'"> + <TargetVersion>Win7</TargetVersion> + <UseDebugLibraries>False</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'"> + <TargetVersion>Win8</TargetVersion> + <UseDebugLibraries>False</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'"> + <TargetVersion>WindowsV6.3</TargetVersion> + <UseDebugLibraries>False</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'" Label="Configuration"> + <TargetVersion>Windows10</TargetVersion> + <UseDebugLibraries>False</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|ARM64'" Label="Configuration"> + <TargetVersion>Windows10</TargetVersion> + <UseDebugLibraries>False</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'"> + <TargetVersion>Win7</TargetVersion> + <UseDebugLibraries>True</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'"> + <TargetVersion>Win8</TargetVersion> + <UseDebugLibraries>True</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'"> + <TargetVersion>WindowsV6.3</TargetVersion> + <UseDebugLibraries>True</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'" Label="Configuration"> + <TargetVersion>Windows10</TargetVersion> + <UseDebugLibraries>True</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|ARM64'" Label="Configuration"> + <TargetVersion>Windows10</TargetVersion> + <UseDebugLibraries>True</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'"> + <TargetVersion>Win7</TargetVersion> + <UseDebugLibraries>False</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'"> + <TargetVersion>Win8</TargetVersion> + <UseDebugLibraries>False</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'"> + <TargetVersion>WindowsV6.3</TargetVersion> + <UseDebugLibraries>False</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'" Label="Configuration"> + <TargetVersion>Windows10</TargetVersion> + <UseDebugLibraries>False</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'"> + <TargetVersion>Win7</TargetVersion> + <UseDebugLibraries>True</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'"> + <TargetVersion>Win8</TargetVersion> + <UseDebugLibraries>True</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'"> + <TargetVersion>WindowsV6.3</TargetVersion> + <UseDebugLibraries>True</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers8.1</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'" Label="Configuration"> + <TargetVersion>Windows10</TargetVersion> + <UseDebugLibraries>True</UseDebugLibraries> + <DriverType /> + <PlatformToolset>WindowsApplicationForDrivers10.0</PlatformToolset> + <ConfigurationType>DynamicLibrary</ConfigurationType> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <PropertyGroup> + <OutDir>$(IntDir)</OutDir> + </PropertyGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|ARM64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|ARM64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> + </ImportGroup> + <ItemGroup Label="WrappedTaskItems" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|ARM64'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|ARM64'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'"> + <TargetName>ThemeUISmpl</TargetName> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|ARM64'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|ARM64'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'"> + <ClCompile> + <TreatWarningAsError>true</TreatWarningAsError> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <Link> + <EntryPointSymbol Condition="'$(Platform)'=='win32'">_DllMainCRTStartup@12</EntryPointSymbol> + <EntryPointSymbol Condition="'$(Platform)'!='win32'">_DllMainCRTStartup</EntryPointSymbol> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|ARM64'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|ARM64'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'"> + <Link> + <AdditionalOptions>%(AdditionalOptions) -ignore:4049,4217</AdditionalOptions> + <AdditionalDependencies>%(AdditionalDependencies);kernel32.lib;user32.lib;winspool.lib;ole32.lib;advapi32.lib;uuid.lib</AdditionalDependencies> + </Link> + <ClCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ClCompile> + <Midl> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </Midl> + <ResourceCompile> + <PreprocessorDefinitions>%(PreprocessorDefinitions);USERMODE_DRIVER;_UNICODE;UNICODE;ISOLATION_AWARE_ENABLED</PreprocessorDefinitions> + <PreprocessorDefinitions>%(PreprocessorDefinitions);MANIFEST_RESOURCE=2</PreprocessorDefinitions> + </ResourceCompile> + </ItemDefinitionGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'"> + <WIN32_WINNT_VERSION>0x0603</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x06030000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'"> + <WIN32_WINNT_VERSION>0x0603</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x06030000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'"> + <WIN32_WINNT_VERSION>0x0603</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x06030000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'"> + <WIN32_WINNT_VERSION>0x0A00</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x0A000000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|ARM64'"> + <WIN32_WINNT_VERSION>0x0A00</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x0A000000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'"> + <WIN32_WINNT_VERSION>0x0603</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x06030000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'"> + <WIN32_WINNT_VERSION>0x0603</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x06030000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'"> + <WIN32_WINNT_VERSION>0x0603</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x06030000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'"> + <WIN32_WINNT_VERSION>0x0A00</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x0A000000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|ARM64'"> + <WIN32_WINNT_VERSION>0x0A00</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x0A000000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'"> + <WIN32_WINNT_VERSION>0x0603</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x06030000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'"> + <WIN32_WINNT_VERSION>0x0603</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x06030000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'"> + <WIN32_WINNT_VERSION>0x0603</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x06030000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'"> + <WIN32_WINNT_VERSION>0x0A00</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x0A000000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'"> + <WIN32_WINNT_VERSION>0x0603</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x06030000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'"> + <WIN32_WINNT_VERSION>0x0603</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x06030000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'"> + <WIN32_WINNT_VERSION>0x0603</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x06030000</NTDDI_VERSION> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'"> + <WIN32_WINNT_VERSION>0x0A00</WIN32_WINNT_VERSION> + <NTDDI_VERSION>0x0A000000</NTDDI_VERSION> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|x64'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|ARM64'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|x64'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|ARM64'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Release|Win32'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win10 Debug|Win32'"> + <Link> + <ModuleDefinitionFile>ThemeUISmpl.def</ModuleDefinitionFile> + </Link> + <ClCompile> + <ExceptionHandling> + </ExceptionHandling> + </ClCompile> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="devmode.cpp"> + <AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreCompiledHeaderFile>precomp.h</PreCompiledHeaderFile> + <PreCompiledHeader>Use</PreCompiledHeader> + <PreCompiledHeaderOutputFile>$(IntDir)\precomp.h.pch</PreCompiledHeaderOutputFile> + </ClCompile> + <ClCompile Include="dllentry.cpp"> + <AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreCompiledHeaderFile>precomp.h</PreCompiledHeaderFile> + <PreCompiledHeader>Use</PreCompiledHeader> + <PreCompiledHeaderOutputFile>$(IntDir)\precomp.h.pch</PreCompiledHeaderOutputFile> + </ClCompile> + <ClCompile Include="fusutils.cpp"> + <AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreCompiledHeaderFile>precomp.h</PreCompiledHeaderFile> + <PreCompiledHeader>Use</PreCompiledHeader> + <PreCompiledHeaderOutputFile>$(IntDir)\precomp.h.pch</PreCompiledHeaderOutputFile> + </ClCompile> + <ClCompile Include="globals.cpp"> + <AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreCompiledHeaderFile>precomp.h</PreCompiledHeaderFile> + <PreCompiledHeader>Use</PreCompiledHeader> + <PreCompiledHeaderOutputFile>$(IntDir)\precomp.h.pch</PreCompiledHeaderOutputFile> + </ClCompile> + <ClCompile Include="intrface.cpp"> + <AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreCompiledHeaderFile>precomp.h</PreCompiledHeaderFile> + <PreCompiledHeader>Use</PreCompiledHeader> + <PreCompiledHeaderOutputFile>$(IntDir)\precomp.h.pch</PreCompiledHeaderOutputFile> + </ClCompile> + <ClCompile Include="OEMUI.cpp"> + <AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreCompiledHeaderFile>precomp.h</PreCompiledHeaderFile> + <PreCompiledHeader>Use</PreCompiledHeader> + <PreCompiledHeaderOutputFile>$(IntDir)\precomp.h.pch</PreCompiledHeaderOutputFile> + </ClCompile> + <ClCompile Include="precompsrc.cpp"> + <AdditionalIncludeDirectories>;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreCompiledHeaderFile>precomp.h</PreCompiledHeaderFile> + <PreCompiledHeader>Create</PreCompiledHeader> + <PreCompiledHeaderOutputFile>$(IntDir)\precomp.h.pch</PreCompiledHeaderOutputFile> + </ClCompile> + <ResourceCompile Include="OEMUI.rc" /> + </ItemGroup> + <ItemGroup> + <Inf Exclude="@(Inf)" Include="*.inf" /> + <FilesToPackage Include="$(TargetPath)" Condition="'$(ConfigurationType)'=='Driver' or '$(ConfigurationType)'=='DynamicLibrary'" /> + </ItemGroup> + <ItemGroup> + <None Exclude="@(None)" Include="*.txt;*.htm;*.html" /> + <None Exclude="@(None)" Include="*.ico;*.cur;*.bmp;*.dlg;*.rct;*.gif;*.jpg;*.jpeg;*.wav;*.jpe;*.tiff;*.tif;*.png;*.rc2" /> + <None Exclude="@(None)" Include="*.def;*.bat;*.hpj;*.asmx" /> + </ItemGroup> + <ItemGroup> + <ClInclude Exclude="@(ClInclude)" Include="*.h;*.hpp;*.hxx;*.hm;*.inl;*.xsd" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> +</Project>
\ No newline at end of file diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/ThemeUISmpl.vcxproj.Filters b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/ThemeUISmpl.vcxproj.Filters new file mode 100644 index 00000000..d8206354 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/ThemeUISmpl.vcxproj.Filters @@ -0,0 +1,327 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx;*</Extensions> + <UniqueIdentifier>{18CF118F-704E-4B55-9621-B0D2F73CBFBE}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files"> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + <UniqueIdentifier>{44047F2E-3DA5-4847-BAE3-6573B04506AF}</UniqueIdentifier> + </Filter> + <Filter Include="Resource Files"> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms;man;xml</Extensions> + <UniqueIdentifier>{695ECF76-7AFF-4B2D-A4E5-2138B4CC5B5A}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="devmode.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dllentry.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="fusutils.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="globals.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intrface.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="OEMUI.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="precompsrc.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + <ClInclude Include="debug.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="devmode.h" /> + <ClInclude Include="fusutils.h" /> + <ClInclude Include="globals.h" /> + <ClInclude Include="intrface.h" /> + <ClInclude Include="oem.h" /> + <ClInclude Include="oemui.h" /> + <ClInclude Include="precomp.h" /> + <ClInclude Include="resource.h" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="OEMUI.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> + <ItemGroup> + <None Include="themeuismpl.def"> + <Filter>Source Files</Filter> + </None> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/debug.h b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/debug.h new file mode 100644 index 00000000..0414569c --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/debug.h @@ -0,0 +1,82 @@ +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright 1996 - 2003 Microsoft Corporation. All Rights Reserved. +// +// FILE: Debug.H +// +// PURPOSE: Define common data types, and external function prototypes +// for debugging functions. Also defines the various debug macros. +// +// + +#pragma once + +///////////////////////////////////////////////////////// +// Macros +///////////////////////////////////////////////////////// +// +// These macros are used for debugging purposes. They expand +// to white spaces on a free build. Here is a brief description +// of what they do and how they are used: +// +// giDebugLevel +// Global variable which set the current debug level to control +// the amount of debug messages emitted. +// +// WARNING(msg) +// Display a message if the current debug level is <= DBG_WARNING. +// The message format is: WRN filename (linenumber): message +// +// ERR(msg) +// Similiar to WARNING macro above - displays a message +// if the current debug level is <= DBG_ERROR. +// +// ASSERT(cond) +// Verify a condition is true. If not, force a breakpoint. +// +// RIP(msg) +// Display a message and force a breakpoint. +// +// Usage: +// WARNING("App passed NULL pointer, ignoring...\n"); +// + +#define DBG_VERBOSE 0 +#define DBG_WARNING 1 +#define DBG_ERROR 2 +#define DBG_NONE 3 + +// VC and Build use different debug defines. +#if defined (DBG) || defined (_DEBUG) + + // __declspec(selectany) ensures that even if this is defined in multiple compilation + // modules, they will all resolve to the same symbol in the linked DLL + __declspec(selectany) INT giDebugLevel = 2; + + #define STRINGIZE(x) #x + #define QUOTE(x) STRINGIZE(x) + #define FILE_AND_LINE __FILE__ "@" QUOTE(__LINE__) + + #define VERBOSE(msg) { if(giDebugLevel <= DBG_VERBOSE) OutputDebugStringA( FILE_AND_LINE ": " msg); } + #define WARNING(msg) { if(giDebugLevel <= DBG_WARNING) OutputDebugStringA( FILE_AND_LINE ": Warning: " msg); } + #define ERR(msg) { if(giDebugLevel <= DBG_ERROR) OutputDebugStringA(FILE_AND_LINE ": Error:" msg); } + #define ASSERT(cond) { if (!(cond)) RIP("\n"); } + #define RIP(msg) { OutputDebugStringA(FILE_AND_LINE ": Error (not recoverable): " msg); DebugBreak(); } + +#else // !DBG + + #define VERBOSE(msg) + #define WARNING(msg) + #define ERR(msg) + #define ASSERT(cond) + #define RIP(msg) + +#endif + + + + + diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/devmode.cpp b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/devmode.cpp new file mode 100644 index 00000000..15234361 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/devmode.cpp @@ -0,0 +1,187 @@ +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright 1998 - 2003 Microsoft Corporation. All Rights Reserved. +// +// FILE: Devmode.cpp +// +// +// PURPOSE: Implementation of Devmode functions shared with OEM UI and OEM rendering modules. +// + + +#include "precomp.h" +#include "oemui.h" +#include "debug.h" +#include "devmode.h" + + +// This indicates to Prefast that this is a usermode driver file. +_Analysis_mode_(_Analysis_code_type_user_driver_); + +// +//Performs operation on UI Plugins Private DevMode Members. +//Called via IOemUI::DevMode +// + +HRESULT hrOEMDevMode(DWORD dwMode, POEMDMPARAM pOemDMParam) +{ + POEMDEV pOEMDevIn; + POEMDEV pOEMDevOut; + + + // Verify parameters. + if( (NULL == pOemDMParam) + || + ( (OEMDM_SIZE != dwMode) + && + (OEMDM_DEFAULT != dwMode) + && + (OEMDM_CONVERT != dwMode) + && + (OEMDM_MERGE != dwMode) + ) + ) + { + ERR(DLLTEXT("DevMode() ERROR_INVALID_PARAMETER.\r\n")); + SetLastError(ERROR_INVALID_PARAMETER); + return E_FAIL; + } + + // Cast generic (i.e. PVOID) to OEM private devomode pointer type. + pOEMDevIn = (POEMDEV) pOemDMParam->pOEMDMIn; + pOEMDevOut = (POEMDEV) pOemDMParam->pOEMDMOut; + + switch(dwMode) + { + // + //The Method should return the size of the memory allocation needed to store the UI plugin Private DEVMODE. + // + case OEMDM_SIZE: + pOemDMParam->cbBufSize = sizeof(OEMDEV); + break; + + // + //Should fill the Private DEVMODE with the default values. + // + case OEMDM_DEFAULT: + // + //OEM_DMEXTRAHEADER Members + // + pOEMDevOut->dmOEMExtra.dwSize = sizeof(OEMDEV); + pOEMDevOut->dmOEMExtra.dwSignature = OEM_SIGNATURE; + pOEMDevOut->dmOEMExtra.dwVersion = OEM_VERSION; + + // + //Private members + // + pOEMDevOut->dwDriverData = 0; + pOEMDevOut->dwAdvancedData = 0; + + VERBOSE(DLLTEXT("pOEMDevOut after setting default values:\r\n")); + break; + + // + //The method should convert private DEVMODE members to the current version, if necessary. + // + case OEMDM_CONVERT: + ConvertOEMDevmode(pOEMDevIn, pOEMDevOut); + break; + + // + //The method should validate the information contained in private DEVMODE members and merge validated values into a private DEVMODE structure containing default values + // + case OEMDM_MERGE: + ConvertOEMDevmode(pOEMDevIn, pOEMDevOut); + MakeOEMDevmodeValid(pOEMDevOut); + break; + } + + return S_OK; +} + + +BOOL ConvertOEMDevmode(PCOEMDEV pOEMDevIn, POEMDEV pOEMDevOut) +{ + if( (NULL == pOEMDevIn) + || + (NULL == pOEMDevOut) + ) + { + ERR(DLLTEXT("ConvertOEMDevmode() invalid parameters.\r\n")); + return FALSE; + } + + // Check OEM Signature, if it doesn't match ours, + // then just assume DMIn is bad and use defaults. + if(pOEMDevIn->dmOEMExtra.dwSignature == pOEMDevOut->dmOEMExtra.dwSignature) + { + VERBOSE(DLLTEXT("Converting private OEM Devmode.\r\n")); + VERBOSE(DLLTEXT("pOEMDevIn:\r\n")); + + // Set the devmode defaults so that anything the isn't copied over will + // be set to the default value. + pOEMDevOut->dwDriverData = 0; + pOEMDevOut->dwAdvancedData = 0; + + // Copy the old structure in to the new using which ever size is the smaller. + // Devmode maybe from newer Devmode (not likely since there is only one), or + // Devmode maybe a newer Devmode, in which case it maybe larger, + // but the first part of the structure should be the same. + + // DESIGN ASSUMPTION: the private DEVMODE structure only gets added to; + // the fields that are in the DEVMODE never change only new fields get added to the end. + + memcpy(pOEMDevOut, pOEMDevIn, __min(pOEMDevOut->dmOEMExtra.dwSize, pOEMDevIn->dmOEMExtra.dwSize)); + + // Re-fill in the size and version fields to indicated + // that the DEVMODE is the current private DEVMODE version. + pOEMDevOut->dmOEMExtra.dwSize = sizeof(OEMDEV); + pOEMDevOut->dmOEMExtra.dwVersion = OEM_VERSION; + } + else + { + WARNING(DLLTEXT("Unknown DEVMODE signature, pOEMDMIn ignored.\r\n")); + + // Don't know what the input DEVMODE is, so just use defaults. + pOEMDevOut->dmOEMExtra.dwSize = sizeof(OEMDEV); + pOEMDevOut->dmOEMExtra.dwSignature = OEM_SIGNATURE; + pOEMDevOut->dmOEMExtra.dwVersion = OEM_VERSION; + pOEMDevOut->dwDriverData = 0; + pOEMDevOut->dwAdvancedData = 0; + } + + return TRUE; +} + + +BOOL MakeOEMDevmodeValid(POEMDEV pOEMDevmode) +{ + if(NULL == pOEMDevmode) + { + return FALSE; + } + + // ASSUMPTION: pOEMDevmode is large enough to contain OEMDEV structure. + + // Make sure that dmOEMExtra indicates the current OEMDEV structure. + pOEMDevmode->dmOEMExtra.dwSize = sizeof(OEMDEV); + pOEMDevmode->dmOEMExtra.dwSignature = OEM_SIGNATURE; + pOEMDevmode->dmOEMExtra.dwVersion = OEM_VERSION; + + // Set driver data, if not valid. + if(pOEMDevmode->dwDriverData > 100) + { + pOEMDevmode->dwDriverData = 0; + } + + // Set Advanced driver data, if not valid. + if(pOEMDevmode->dwAdvancedData > 100) + { + pOEMDevmode->dwAdvancedData = 0; + } + + return TRUE; +} diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/devmode.h b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/devmode.h new file mode 100644 index 00000000..b55fb016 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/devmode.h @@ -0,0 +1,55 @@ +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright 1998 - 2003 Microsoft Corporation. All Rights Reserved. +// +// FILE: Devmode.h +// +// +// PURPOSE: Define common data types, and external function prototypes +// for devmode functions. +// +#pragma once + +//////////////////////////////////////////////////////// +// OEM Devmode Defines +//////////////////////////////////////////////////////// + + + + +//////////////////////////////////////////////////////// +// OEM Devmode Type Definitions +//////////////////////////////////////////////////////// + +// +//Can add info to the private devmode bellow here. +//Note : +// This structure must be prefixed by OEM_DMEXTRAHEADER +// Your plug-in must implement the IPrintOemUI::DevMode method +// +typedef struct tagOEMDEV +{ + OEM_DMEXTRAHEADER dmOEMExtra; + DWORD dwDriverData; + DWORD dwAdvancedData; + + // + //Private DevMode Members + // + +} OEMDEV, *POEMDEV; + +typedef const OEMDEV *PCOEMDEV; + + + +///////////////////////////////////////////////////////// +// ProtoTypes +///////////////////////////////////////////////////////// + +HRESULT hrOEMDevMode(DWORD dwMode, POEMDMPARAM pOemDMParam); +BOOL ConvertOEMDevmode(PCOEMDEV pOEMDevIn, POEMDEV pOEMDevOut); +BOOL MakeOEMDevmodeValid(POEMDEV pOEMDevmode); diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/dllentry.cpp b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/dllentry.cpp new file mode 100644 index 00000000..a7c846b7 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/dllentry.cpp @@ -0,0 +1,66 @@ +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright 1998 - 2003 Microsoft Corporation. All Rights Reserved. +// +// FILE: dllentry.cpp +// +// +// PURPOSE: Source module for DLL entry function(s). +// + +#include "precomp.h" +#include "oemui.h" +#include "fusutils.h" +#include "debug.h" + +// This indicates to Prefast that this is a usermode driver file. +_Analysis_mode_(_Analysis_code_type_user_driver_); + +/////////////////////////////////////////////////////////// +// +// DLL entry point +// +BOOL WINAPI DllMain(HINSTANCE hInst, WORD wReason, LPVOID lpReserved) +{ + UNREFERENCED_PARAMETER(lpReserved); + + switch(wReason) + { + case DLL_PROCESS_ATTACH: + VERBOSE(DLLTEXT("Process attach.\r\n")); + + // Store the module handle in case we need it later. + ghInstance = hInst; + + // NOTE: We don't create an Activation Context on module load, + // but on need of an Avtivation Context; the first time + // GetMyActivationContext() or CreateMyActivationContext() is called. + break; + + case DLL_THREAD_ATTACH: + VERBOSE(DLLTEXT("Thread attach.\r\n")); + break; + + case DLL_PROCESS_DETACH: + VERBOSE(DLLTEXT("Process detach.\r\n")); + + // Release the Activation Context if we created one somewhere + // by calling GetMyActivationContext() or CreateMyActivationContext(); + if(INVALID_HANDLE_VALUE != ghActCtx) + { + ReleaseActCtx(ghActCtx); + ghActCtx = INVALID_HANDLE_VALUE; + } + break; + + case DLL_THREAD_DETACH: + VERBOSE(DLLTEXT("Thread detach.\r\n")); + break; + } + + return TRUE; +} + diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/fusutils.cpp b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/fusutils.cpp new file mode 100644 index 00000000..0f9bf2c3 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/fusutils.cpp @@ -0,0 +1,118 @@ +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright 1998 - 2003 Microsoft Corporation. All Rights Reserved. +// +// FILE: fsutils.h +// +// +// PURPOSE: Fusion utilities +// + +#include "precomp.h" +#include "globals.h" +#include "fusutils.h" + +#define MAX_LOOP 10 + +// This indicates to Prefast that this is a usermode driver file. +_Analysis_mode_(_Analysis_code_type_user_driver_); + + +HANDLE GetMyActivationContext() +{ + // Make sure we've created our activation context. + CreateMyActivationContext(); + + // Return the global. + return ghActCtx; +} + + +BOOL CreateMyActivationContext() +{ + if(INVALID_HANDLE_VALUE != ghActCtx) + { + return TRUE; + } + + ghActCtx = CreateActivationContextFromResource(ghInstance, MAKEINTRESOURCE(MANIFEST_RESOURCE)); + + return (INVALID_HANDLE_VALUE != ghActCtx); +} + + + +HANDLE CreateActivationContextFromResource(HMODULE hModule, LPCTSTR pszResourceName) +{ + DWORD dwSize = MAX_PATH; + DWORD dwUsed = 0; + DWORD dwLoop; + PTSTR pszModuleName = NULL; + ACTCTX act; + HANDLE hActCtx = INVALID_HANDLE_VALUE; + + + // Get the name for the module that contains the manifest resource + // to create the Activation Context from. + dwLoop = 0; + do + { + // May need to allocate or re-alloc buffer for module name. + if(NULL != pszModuleName) + { + // Need to re-alloc bigger buffer. + + // First, delete old buffer. + delete[] pszModuleName; + + // Second, increase buffer alloc size. + dwSize <<= 1; + } + pszModuleName = new TCHAR[dwSize]; + if(NULL == pszModuleName) + { + goto Exit; + } + + // Try to get the module name. + dwUsed = GetModuleFileName(hModule, pszModuleName, dwSize); + + // Check to see if it failed. + if(0 == dwUsed) + { + goto Exit; + } + + // If dwUsed is equla to dwSize or larger, + // the buffer passed in wasn't big enough. + } while ( (dwUsed >= dwSize) && (++dwLoop < MAX_LOOP) ); + + // Now let's try to create an activation context + // from manifest resource. + ::ZeroMemory(&act, sizeof(act)); + act.cbSize = sizeof(act); + act.dwFlags = ACTCTX_FLAG_RESOURCE_NAME_VALID; + act.lpResourceName = pszResourceName; + act.lpSource = pszModuleName; + + hActCtx = CreateActCtx(&act); + + +Exit: + + // + // Clean up. + // + + if(NULL != pszModuleName) + { + delete[] pszModuleName; + } + + return hActCtx; +} + + diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/fusutils.h b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/fusutils.h new file mode 100644 index 00000000..2f79c522 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/fusutils.h @@ -0,0 +1,18 @@ +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright 1998 - 2003 Microsoft Corporation. All Rights Reserved. +// +// FILE: fsutils.h +// +// +// PURPOSE: Fusion utilities +// +#pragma once + +HANDLE GetMyActivationContext(); +BOOL CreateMyActivationContext(); +HANDLE CreateActivationContextFromResource(HMODULE hModule, LPCTSTR pszResourceName); + diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/globals.cpp b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/globals.cpp new file mode 100644 index 00000000..d2af1b8b --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/globals.cpp @@ -0,0 +1,29 @@ +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright 1998 - 2003 Microsoft Corporation. All Rights Reserved. +// +// FILE: Globals.cpp +// +// +// PURPOSE: File that contains all the globals. +// + +#include "precomp.h" +#include "globals.h" + +// This indicates to Prefast that this is a usermode driver file. +_Analysis_mode_(_Analysis_code_type_user_driver_); + +/////////////////////////////////////// +// Globals +/////////////////////////////////////// + + +// Module's Instance handle from DLLEntry of process. +HINSTANCE ghInstance = NULL; + +// Module's Activation Context from DLLEntry of process. +HANDLE ghActCtx = INVALID_HANDLE_VALUE; diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/globals.h b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/globals.h new file mode 100644 index 00000000..a5a58cb8 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/globals.h @@ -0,0 +1,21 @@ +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright 1998 - 2003 Microsoft Corporation. All Rights Reserved. +// +// FILE: Globals.h +// +// +// PURPOSE: Lists of globals declared in Globals.cpp. +// +#pragma once + +/////////////////////////////////////// +// Globals +/////////////////////////////////////// + +extern HINSTANCE ghInstance; // Module's Instance handle from DLLEntry of process. +extern HANDLE ghActCtx; // Module's Activation Context from DLLEntry of process. + diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/intrface.cpp b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/intrface.cpp new file mode 100644 index 00000000..3b966a58 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/intrface.cpp @@ -0,0 +1,575 @@ +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright 1998 - 2003 Microsoft Corporation. All Rights Reserved. +// +// FILE: Intrface.cpp +// +// +// PURPOSE: Implementation of interface for PScript4, PScript5, Unidrv4, +// Unidrv5 UI plug-ins. +// + +#include "precomp.h" + +#include "oemui.h" +#include "debug.h" +#include "intrface.h" + +// This indicates to Prefast that this is a usermode driver file. +_Analysis_mode_(_Analysis_code_type_user_driver_); + + +//////////////////////////////////////////////////////// +// Internal Globals +//////////////////////////////////////////////////////// + +static long g_cComponents = 0 ; // Count of active components +static long g_cServerLocks = 0 ; // Count of locks + + + +//////////////////////////////////////////////////////////////////////////////// +// +// IOemUI body +// +IOemUI::~IOemUI() +{ + // Make sure that helper interface is released. + if(NULL != m_pOEMHelp) + { + m_pOEMHelp->Release(); + m_pOEMHelp = NULL; + } + + // If this instance of the object is being deleted, then the reference + // count should be zero. + assert(0 == m_cRef); +} + +HRESULT __stdcall IOemUI::QueryInterface(const IID& iid, void** ppv) +{ + VERBOSE(DLLTEXT("IOemUI:QueryInterface entry.\r\n\r\n")); + if (iid == IID_IUnknown) + { + *ppv = static_cast<IUnknown*>(this); + VERBOSE(DLLTEXT("IOemUI:Return pointer to IUnknown.\r\n\r\n")); + } + else if (iid == IID_IPrintOemUI) + { + *ppv = static_cast<IPrintOemUI*>(this) ; + VERBOSE(DLLTEXT("IOemUI:Return pointer to IPrintOemUI.\r\n")); + } + else + { + VERBOSE(DLLTEXT("IOemUI::QueryInterface interface not supported.\r\n")); + *ppv = NULL ; + return E_NOINTERFACE ; + } + reinterpret_cast<IUnknown*>(*ppv)->AddRef() ; + return S_OK ; +} + +ULONG __stdcall IOemUI::AddRef() +{ + VERBOSE(DLLTEXT("IOemUI:AddRef entry.\r\n")); + return InterlockedIncrement(&m_cRef) ; +} + +_At_(this, __drv_freesMem(object)) +ULONG __stdcall IOemUI::Release() +{ + VERBOSE(DLLTEXT("IOemUI:Release entry.\r\n")); + ASSERT( 0 != m_cRef); + ULONG cRef = InterlockedDecrement(&m_cRef); + if (0 == cRef) + { + delete this; + + } + return cRef; +} + +HRESULT __stdcall IOemUI::PublishDriverInterface( + IUnknown *pIUnknown) +{ + VERBOSE(DLLTEXT("IOemUI:PublishDriverInterface entry.\r\n")); + + // Need to store pointer to Driver Helper functions, if we already haven't. + if (m_pOEMHelp == NULL) + { + HRESULT hResult; + + + // Get Interface to Helper Functions. + hResult = pIUnknown->QueryInterface(IID_IPrintOemDriverUI, (void** ) &(m_pOEMHelp)); + + if(!SUCCEEDED(hResult)) + { + // Make sure that interface pointer reflects interface query failure. + m_pOEMHelp = NULL; + + return E_FAIL; + } + } + + return S_OK; +} + +HRESULT __stdcall IOemUI::GetInfo( + DWORD dwMode, + PVOID pBuffer, + DWORD cbSize, + PDWORD pcbNeeded) +{ + VERBOSE(DLLTEXT("IOemUI::GetInfo entry.\r\r\n")); + + // Validate parameters. + if( (NULL == pcbNeeded) + || + ( (OEMGI_GETSIGNATURE != dwMode) + && + (OEMGI_GETVERSION != dwMode) + && + (OEMGI_GETPUBLISHERINFO != dwMode) + ) + ) + { + WARNING(DLLTEXT("IOemUI::GetInfo() exit pcbNeeded is NULL! ERROR_INVALID_PARAMETER\r\r\n")); + SetLastError(ERROR_INVALID_PARAMETER); + return E_FAIL; + } + + // Set expected buffer size and number of bytes written. + *pcbNeeded = sizeof(DWORD); + + // Check buffer size is sufficient. + if((cbSize < *pcbNeeded) || (NULL == pBuffer)) + { + WARNING(DLLTEXT("IOemUI::GetInfo() exit insufficient buffer!\r\r\n")); + SetLastError(ERROR_INSUFFICIENT_BUFFER); + return E_FAIL; + } + + switch(dwMode) + { + // OEM DLL Signature + case OEMGI_GETSIGNATURE: + *(PDWORD)pBuffer = OEM_SIGNATURE; + break; + + // OEM DLL version + case OEMGI_GETVERSION: + *(PDWORD)pBuffer = OEM_VERSION; + break; + + // dwMode not supported. + default: + // Set written bytes to zero since nothing was written. + WARNING(DLLTEXT("IOemUI::GetInfo() exit mode not supported.\r\r\n")); + *pcbNeeded = 0; + SetLastError(ERROR_NOT_SUPPORTED); + return E_FAIL; + } + + VERBOSE(DLLTEXT("IOemUI::GetInfo() exit S_OK.\r\r\n")); + return S_OK; +} + +HRESULT __stdcall IOemUI::DevMode( + DWORD dwMode, + POEMDMPARAM pOemDMParam) +{ + VERBOSE(DLLTEXT("IOemUI:DevMode entry.\r\n")); + + return hrOEMDevMode(dwMode, pOemDMParam); +} + +HRESULT __stdcall IOemUI::CommonUIProp( + DWORD dwMode, + POEMCUIPPARAM pOemCUIPParam) +{ + VERBOSE(DLLTEXT("IOemUI:CommonUIProp entry.\r\n")); + + return hrOEMPropertyPage(dwMode, pOemCUIPParam); +} + + +HRESULT __stdcall IOemUI::DocumentPropertySheets( + PPROPSHEETUI_INFO pPSUIInfo, + LPARAM lParam) +{ + VERBOSE(DLLTEXT("IOemUI:DocumentPropertySheets entry.\r\n")); + + return hrOEMDocumentPropertySheets(pPSUIInfo, lParam, m_pOEMHelp); +} + +HRESULT __stdcall IOemUI::DevicePropertySheets( + PPROPSHEETUI_INFO pPSUIInfo, + LPARAM lParam) +{ + VERBOSE(DLLTEXT("IOemUI:DevicePropertySheets entry.\r\n")); + + return hrOEMDevicePropertySheets(pPSUIInfo, lParam); +} + +HRESULT __stdcall IOemUI::DeviceCapabilities( + POEMUIOBJ poemuiobj, + HANDLE hPrinter, + _In_ PWSTR pDeviceName, + WORD wCapability, + PVOID pOutput, + PDEVMODE pPublicDM, + PVOID pOEMDM, + DWORD dwOld, + DWORD *dwResult) +{ + VERBOSE(DLLTEXT("IOemUI:DeviceCapabilities entry.\r\n")); + + UNREFERENCED_PARAMETER(poemuiobj); + UNREFERENCED_PARAMETER(hPrinter); + UNREFERENCED_PARAMETER(pDeviceName); + UNREFERENCED_PARAMETER(wCapability); + UNREFERENCED_PARAMETER(pOutput); + UNREFERENCED_PARAMETER(pPublicDM); + UNREFERENCED_PARAMETER(pOEMDM); + UNREFERENCED_PARAMETER(dwOld); + UNREFERENCED_PARAMETER(dwResult); + + return E_NOTIMPL; +} + +HRESULT __stdcall IOemUI::DevQueryPrintEx( + POEMUIOBJ poemuiobj, + PDEVQUERYPRINT_INFO pDQPInfo, + PDEVMODE pPublicDM, + PVOID pOEMDM) +{ + VERBOSE(DLLTEXT("IOemUI:DevQueryPrintEx entry.\r\n")); + + UNREFERENCED_PARAMETER(poemuiobj); + UNREFERENCED_PARAMETER(pDQPInfo); + UNREFERENCED_PARAMETER(pPublicDM); + UNREFERENCED_PARAMETER(pOEMDM); + + return E_NOTIMPL; +} + +HRESULT __stdcall IOemUI::UpgradePrinter( + DWORD dwLevel, + PBYTE pDriverUpgradeInfo) +{ + VERBOSE(DLLTEXT("IOemUI:UpgradePrinter entry.\r\n")); + + UNREFERENCED_PARAMETER(dwLevel); + UNREFERENCED_PARAMETER(pDriverUpgradeInfo); + + return E_NOTIMPL; +} + +HRESULT __stdcall IOemUI::PrinterEvent( + _In_ PWSTR pPrinterName, + INT iDriverEvent, + DWORD dwFlags, + LPARAM lParam) +{ + VERBOSE(DLLTEXT("IOemUI:PrinterEvent entry.\r\n")); + + UNREFERENCED_PARAMETER(pPrinterName); + UNREFERENCED_PARAMETER(iDriverEvent); + UNREFERENCED_PARAMETER(dwFlags); + UNREFERENCED_PARAMETER(lParam); + + return E_NOTIMPL; +} + +HRESULT __stdcall IOemUI::DriverEvent( + DWORD dwDriverEvent, + DWORD dwLevel, + LPBYTE pDriverInfo, + LPARAM lParam) +{ + VERBOSE(DLLTEXT("IOemUI:DriverEvent entry.\r\n")); + + UNREFERENCED_PARAMETER(dwDriverEvent); + UNREFERENCED_PARAMETER(dwLevel); + UNREFERENCED_PARAMETER(pDriverInfo); + UNREFERENCED_PARAMETER(lParam); + + return E_NOTIMPL; +}; + + +#define PROFILE_NAME L"OEMPROFILE.icm\0" + +HRESULT __stdcall IOemUI::QueryColorProfile( + HANDLE hPrinter, + POEMUIOBJ poemuiobj, + PDEVMODE pPublicDM, + PVOID pOEMDM, + ULONG ulQueryMode, + VOID *pvProfileData, + ULONG *pcbProfileData, + FLONG *pflProfileData) +{ + HRESULT Result = E_FAIL; + + + VERBOSE(DLLTEXT("IOemUI:QueryColorProfile entry.\r\n")); + + UNREFERENCED_PARAMETER(hPrinter); + UNREFERENCED_PARAMETER(poemuiobj); + UNREFERENCED_PARAMETER(pPublicDM); + UNREFERENCED_PARAMETER(pOEMDM); + + if(QCP_DEVICEPROFILE == ulQueryMode) + { + if(NULL == pvProfileData) + { + *pcbProfileData = sizeof(PROFILE_NAME); + SetLastError(ERROR_INSUFFICIENT_BUFFER); + } + else + { + if(*pcbProfileData < sizeof(PROFILE_NAME)) + { + *pcbProfileData = sizeof(PROFILE_NAME); + SetLastError(ERROR_INSUFFICIENT_BUFFER); + } + else + { + Result = StringCbCopy((LPWSTR)pvProfileData, *pcbProfileData, PROFILE_NAME); + *pcbProfileData = sizeof(PROFILE_NAME); + *pflProfileData = QCP_PROFILEDISK; + + if(FAILED(Result)) + { + SetLastError(Result); + } + } + } + } + + return Result; +}; + +HRESULT __stdcall IOemUI::FontInstallerDlgProc( + HWND hWnd, + UINT usMsg, + WPARAM wParam, + LPARAM lParam) +{ + VERBOSE(DLLTEXT("IOemUI:FontInstallerDlgProc entry.\r\n")); + + UNREFERENCED_PARAMETER(hWnd); + UNREFERENCED_PARAMETER(usMsg); + UNREFERENCED_PARAMETER(wParam); + UNREFERENCED_PARAMETER(lParam); + + return E_NOTIMPL; +}; + +HRESULT __stdcall IOemUI::UpdateExternalFonts( + HANDLE hPrinter, + HANDLE hHeap, + _In_ PWSTR pwstrCartridges) +{ + VERBOSE(DLLTEXT("IOemUI:UpdateExternalFonts entry.\r\n")); + + UNREFERENCED_PARAMETER(hPrinter); + UNREFERENCED_PARAMETER(hHeap); + UNREFERENCED_PARAMETER(pwstrCartridges); + + return E_NOTIMPL; +} + +//////////////////////////////////////////////////////////////////////////////// +// +// oem class factory +// +class IOemCF : public IClassFactory +{ +public: + // *** IUnknown methods *** + + STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj); + + STDMETHOD_(ULONG,AddRef) (THIS); + + // the _At_ tag here tells prefast that once release + // is called, the memory should not be considered leaked + _At_(this, __drv_freesMem(object)) + STDMETHOD_(ULONG,Release) (THIS); + + // *** IClassFactory methods *** + STDMETHOD(CreateInstance) (THIS_ + LPUNKNOWN pUnkOuter, + REFIID riid, + LPVOID FAR* ppvObject); + STDMETHOD(LockServer) (THIS_ BOOL bLock); + + + // Constructor + IOemCF(): m_cRef(1) { }; + ~IOemCF() { }; + +protected: + LONG m_cRef; + +}; + +/////////////////////////////////////////////////////////// +// +// Class factory body +// +HRESULT __stdcall IOemCF::QueryInterface(const IID& iid, void** ppv) +{ + if ((iid == IID_IUnknown) || (iid == IID_IClassFactory)) + { + *ppv = static_cast<IOemCF*>(this) ; + } + else + { + WARNING(DLLTEXT("IOemCF::QueryInterface interface not supported.\r\n")); + *ppv = NULL ; + return E_NOINTERFACE ; + } + reinterpret_cast<IUnknown*>(*ppv)->AddRef() ; + return S_OK ; +} + +ULONG __stdcall IOemCF::AddRef() +{ + return InterlockedIncrement(&m_cRef) ; +} + +_At_(this, __drv_freesMem(object)) +ULONG __stdcall IOemCF::Release() +{ + ASSERT( 0 != m_cRef); + ULONG cRef = InterlockedDecrement(&m_cRef); + if (0 == cRef) + { + delete this; + + } + return cRef; +} + +// IClassFactory implementation +HRESULT __stdcall IOemCF::CreateInstance(IUnknown* pUnknownOuter, + const IID& iid, + void** ppv) +{ + //DbgPrint(DLLTEXT("Class factory:\t\tCreate component.")) ; + + if (ppv == NULL) + { + return E_POINTER; + } + *ppv = NULL; + + // Cannot aggregate. + if (pUnknownOuter != NULL) + { + return CLASS_E_NOAGGREGATION ; + } + + // Create component. + IOemUI* pOemCB = new IOemUI ; + if (pOemCB == NULL) + { + return E_OUTOFMEMORY ; + } + // Get the requested interface. + HRESULT hr = pOemCB->QueryInterface(iid, ppv) ; + + // Release the IUnknown pointer. + // (If QueryInterface failed, component will delete itself.) + pOemCB->Release() ; + return hr ; +} + +// LockServer +HRESULT __stdcall IOemCF::LockServer(BOOL bLock) +{ + if (bLock) + { + InterlockedIncrement(&g_cServerLocks) ; + } + else + { + InterlockedDecrement(&g_cServerLocks) ; + } + return S_OK ; +} + +/////////////////////////////////////////////////////////// +// +// Exported functions +// + + +// Can DLL unload now? +// +STDAPI DllCanUnloadNow() +{ + // + // To avoid leaving OEM DLL still in memory when Unidrv or Pscript drivers + // are unloaded, Unidrv and Pscript driver ignore the return value of + // DllCanUnloadNow of the OEM DLL, and always call FreeLibrary on the OEMDLL. + // + // If OEM DLL spins off a working thread that also uses the OEM DLL, the + // thread needs to call LoadLibrary and FreeLibraryAndExitThread, otherwise + // it may crash after Unidrv or Pscript calls FreeLibrary. + // + + if ((g_cComponents == 0) && (g_cServerLocks == 0)) + { + return S_OK ; + } + else + { + return S_FALSE; + } +} + +// +// Get class factory +// +STDAPI DllGetClassObject( + _In_ REFCLSID clsid, + _In_ REFIID iid, + _Outptr_ LPVOID* ppv) +{ + VERBOSE(DLLTEXT("DllGetClassObject:Create class factory.\r\n")); + + if (ppv == NULL) + { + return E_POINTER; + } + *ppv = NULL; + + // Can we create this component? + if (clsid != CLSID_OEMUI) + { + return CLASS_E_CLASSNOTAVAILABLE ; + } + + // Create class factory. + IOemCF* pFontCF = new IOemCF ; // Reference count set to 1 + // in constructor + if (pFontCF == NULL) + { + return E_OUTOFMEMORY ; + } + + // Get requested interface. + HRESULT hr = pFontCF->QueryInterface(iid, ppv) ; + pFontCF->Release() ; + + return hr ; +} + diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/intrface.h b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/intrface.h new file mode 100644 index 00000000..d9bdf3a2 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/intrface.h @@ -0,0 +1,179 @@ +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright 1998 - 2003 Microsoft Corporation. All Rights Reserved. +// +// FILE: Intrface.h +// +// +// PURPOSE: Header of interface for PScript5 and Unidrv5 UI plug-in. +// +#pragma once + +//////////////////////////////////////////////////////////////////////////////// +// +// IOemUI +// +class IOemUI: public IPrintOemUI +{ +public: + // *** IUnknown methods *** + + STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj); + + STDMETHOD_(ULONG,AddRef) (THIS); + + // the _At_ tag here tells prefast that once release + // is called, the memory should not be considered leaked + _At_(this, __drv_freesMem(object)) + STDMETHOD_(ULONG,Release) (THIS); + + // + // Method for publishing Driver interface. + // + STDMETHOD(PublishDriverInterface)(THIS_ IUnknown *pIUnknown); + + // + // Get OEM dll related information + // + + STDMETHOD(GetInfo) (THIS_ DWORD dwMode, PVOID pBuffer, DWORD cbSize, + PDWORD pcbNeeded); + + // + // OEMDevMode + // + + STDMETHOD(DevMode) (THIS_ DWORD dwMode, POEMDMPARAM pOemDMParam) ; + + // + // OEMCommonUIProp + // + + STDMETHOD(CommonUIProp) (THIS_ + DWORD dwMode, + POEMCUIPPARAM pOemCUIPParam + ); + + // + // OEMDocumentPropertySheets + // + + STDMETHOD(DocumentPropertySheets) (THIS_ + PPROPSHEETUI_INFO pPSUIInfo, + LPARAM lParam + ); + + // + // OEMDevicePropertySheets + // + + STDMETHOD(DevicePropertySheets) (THIS_ + PPROPSHEETUI_INFO pPSUIInfo, + LPARAM lParam + ); + + + // + // OEMDevQueryPrintEx + // + + STDMETHOD(DevQueryPrintEx) (THIS_ + POEMUIOBJ poemuiobj, + PDEVQUERYPRINT_INFO pDQPInfo, + PDEVMODE pPublicDM, + PVOID pOEMDM + ); + + // + // OEMDeviceCapabilities + // + + STDMETHOD(DeviceCapabilities) (THIS_ + POEMUIOBJ poemuiobj, + HANDLE hPrinter, + _In_ PWSTR pDeviceName, + WORD wCapability, + PVOID pOutput, + PDEVMODE pPublicDM, + PVOID pOEMDM, + DWORD dwOld, + DWORD *dwResult + ); + + // + // OEMUpgradePrinter + // + + STDMETHOD(UpgradePrinter) (THIS_ + DWORD dwLevel, + PBYTE pDriverUpgradeInfo + ); + + // + // OEMPrinterEvent + // + + STDMETHOD(PrinterEvent) (THIS_ + _In_ PWSTR pPrinterName, + INT iDriverEvent, + DWORD dwFlags, + LPARAM lParam + ); + + // + // OEMDriverEvent + // + + STDMETHOD(DriverEvent)(THIS_ + DWORD dwDriverEvent, + DWORD dwLevel, + LPBYTE pDriverInfo, + LPARAM lParam + ); + + // + // OEMQueryColorProfile + // + + STDMETHOD(QueryColorProfile) (THIS_ + HANDLE hPrinter, + POEMUIOBJ poemuiobj, + PDEVMODE pPublicDM, + PVOID pOEMDM, + ULONG ulReserved, + VOID *pvProfileData, + ULONG *pcbProfileData, + FLONG *pflProfileData); + + // + // OEMFontInstallerDlgProc + // + + STDMETHOD(FontInstallerDlgProc) (THIS_ + HWND hWnd, + UINT usMsg, + WPARAM wParam, + LPARAM lParam + ); + // + // UpdateExternalFonts + // + + STDMETHOD(UpdateExternalFonts) (THIS_ + HANDLE hPrinter, + HANDLE hHeap, + _In_ PWSTR pwstrCartridges + ); + + + IOemUI() { m_cRef = 1; m_pOEMHelp = NULL; }; + ~IOemUI(); + +protected: + LONG m_cRef; + IPrintOemDriverUI* m_pOEMHelp; +}; + diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/oem.h b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/oem.h new file mode 100644 index 00000000..bf3d75f9 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/oem.h @@ -0,0 +1,22 @@ +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright 1997 - 2003 Microsoft Corporation. All Rights Reserved. +// +// FILE: oem.h +// +// +// PURPOSE: Define common data types, and external function prototypes +// for debug.cpp. +// +#pragma once + +//////////////////////////////////////////////////////// +// OEM Defines +//////////////////////////////////////////////////////// + +#define OEM_SIGNATURE 'MSFT' +#define OEM_VERSION 0x00000001L + diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/oemui.cpp b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/oemui.cpp new file mode 100644 index 00000000..61f3d378 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/oemui.cpp @@ -0,0 +1,756 @@ +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright 1997 - 2003 Microsoft Corporation. All Rights Reserved. +// +// FILE: OEMUI.cpp +// +// +// PURPOSE: Main file for OEM UI test module. +// +// + +#include "precomp.h" +#include "resource.h" +#include "debug.h" +#include "fusutils.h" +#include "oemui.h" + +// This indicates to Prefast that this is a usermode driver file. +_Analysis_mode_(_Analysis_code_type_user_driver_); + +//////////////////////////////////////////////////////// +// INTERNAL MACROS and DEFINES +//////////////////////////////////////////////////////// + +typedef struct _tagCBUserData +{ + HANDLE hComPropSheet; + HANDLE hPropPage; + POEMUIPSPARAM pOEMUIParam; + PFNCOMPROPSHEET pfnComPropSheet; + +} CBUSERDATA, *PCBUSERDATA; + + + +//////////////////////////////////////////////////////// +// INTERNAL PROTOTYPES +//////////////////////////////////////////////////////// + +static HRESULT hrDocumentPropertyPage(DWORD dwMode, POEMCUIPPARAM pOEMUIParam); +static HRESULT hrPrinterPropertyPage(DWORD dwMode, POEMCUIPPARAM pOEMUIParam); +LONG APIENTRY OEMPrinterUICallBack(PCPSUICBPARAM pCallbackParam, POEMCUIPPARAM pOEMUIParam); +LONG APIENTRY OEMDocUICallBack(PCPSUICBPARAM pCallbackParam, POEMCUIPPARAM pOEMUIParam); +LONG APIENTRY OEMDocUICallBack2(PCPSUICBPARAM pCallbackParam); +INT_PTR CALLBACK DevicePropPageProc(HWND hDlg, UINT uiMsg, WPARAM wParam, LPARAM lParam); +static POPTITEM CreateOptItems(HANDLE hHeap, DWORD dwOptItems); +static void InitOptItems(POPTITEM pOptItems, DWORD dwOptItems); +static POPTTYPE CreateOptType(HANDLE hHeap, WORD wOptParams); +static PTSTR GetStringResource(HANDLE hHeap, HANDLE hModule, UINT uResource); + + + +//////////////////////////////////////////////////////////////////////////////// +// +// Initializes OptItems to display OEM device or document property UI. +// +HRESULT hrOEMPropertyPage(DWORD dwMode, POEMCUIPPARAM pOEMUIParam) +{ + HRESULT hResult = S_OK; + + + VERBOSE(DLLTEXT("hrOEMPropertyPage entry.\r\n")); + + // Validate parameters. + if( (OEMCUIP_DOCPROP != dwMode) + && + (OEMCUIP_PRNPROP != dwMode) + ) + { + ERR(DLLTEXT("hrOEMPropertyPage() ERROR_INVALID_PARAMETER.\r\n")); + SetLastError(ERROR_INVALID_PARAMETER); + return E_FAIL; + } + + switch(dwMode) + { + case OEMCUIP_DOCPROP: + hResult = hrDocumentPropertyPage(dwMode, pOEMUIParam); + break; + + case OEMCUIP_PRNPROP: + hResult = hrPrinterPropertyPage(dwMode, pOEMUIParam); + break; + + default: + // Should never reach this! + ERR(DLLTEXT("hrOEMPropertyPage() Invalid dwMode")); + SetLastError(ERROR_INVALID_PARAMETER); + hResult = E_FAIL; + break; + } + + return hResult; +} + +//////////////////////////////////////////////////////////////////////////////// +// +// Initializes OptItems to display OEM document property UI. +// +static HRESULT hrDocumentPropertyPage(DWORD dwMode, POEMCUIPPARAM pOEMUIParam) +{ + UNREFERENCED_PARAMETER(dwMode); + + if(NULL == pOEMUIParam->pOEMOptItems) + { + // Fill in the number of OptItems to create for OEM document property UI. + pOEMUIParam->cOEMOptItems = 1; + + VERBOSE(DLLTEXT("hrDocumentPropertyPage() requesting items.\r\n")); + } + else + { + POEMDEV pOEMDev = (POEMDEV) pOEMUIParam->pOEMDM; + + + VERBOSE(DLLTEXT("hrDocumentPropertyPage() fill out items.\r\n")); + + // Init UI Callback reference. + pOEMUIParam->OEMCUIPCallback = OEMDocUICallBack; + + // Init OEMOptItmes. + InitOptItems(pOEMUIParam->pOEMOptItems, pOEMUIParam->cOEMOptItems); + + // Fill out tree view items. + + // New section. + pOEMUIParam->pOEMOptItems[0].Level = 1; + pOEMUIParam->pOEMOptItems[0].Flags = OPTIF_COLLAPSE; + pOEMUIParam->pOEMOptItems[0].pName = GetStringResource(pOEMUIParam->hOEMHeap, pOEMUIParam->hModule, IDS_ADV_SECTION); + pOEMUIParam->pOEMOptItems[0].Sel = pOEMDev->dwAdvancedData; + + pOEMUIParam->pOEMOptItems[0].pOptType = CreateOptType(pOEMUIParam->hOEMHeap, 2); + + pOEMUIParam->pOEMOptItems[0].pOptType->Type = TVOT_UDARROW; + pOEMUIParam->pOEMOptItems[0].pOptType->pOptParam[1].IconID = 0; + pOEMUIParam->pOEMOptItems[0].pOptType->pOptParam[1].lParam = 100; + } + + return S_OK; +} + +//////////////////////////////////////////////////////////////////////////////// +// +// Initializes OptItems to display OEM printer property UI. +// +static HRESULT hrPrinterPropertyPage(DWORD dwMode, POEMCUIPPARAM pOEMUIParam) +{ + UNREFERENCED_PARAMETER(dwMode); + + if(NULL == pOEMUIParam->pOEMOptItems) + { + // Fill in the number of OptItems to create for OEM printer property UI. + pOEMUIParam->cOEMOptItems = 1; + + VERBOSE(DLLTEXT("hrPrinterPropertyPage() requesting items.\r\n")); + } + else + { + DWORD dwError; + DWORD dwDeviceValue; + DWORD dwType; + DWORD dwNeeded; + + + VERBOSE(DLLTEXT("hrPrinterPropertyPage() fill out items.\r\n")); + + // Get device settings value from printer. + dwError = GetPrinterData(pOEMUIParam->hPrinter, OEMUI_VALUE, &dwType, (PBYTE) &dwDeviceValue, + sizeof(dwDeviceValue), &dwNeeded); + if( (ERROR_SUCCESS != dwError) + || + (dwDeviceValue > 100) + ) + { + // Failed to get the device value or value is invalid, just use the default. + dwDeviceValue = 0; + } + + // Init UI Callback reference. + pOEMUIParam->OEMCUIPCallback = OEMPrinterUICallBack; + + // Init OEMOptItmes. + InitOptItems(pOEMUIParam->pOEMOptItems, pOEMUIParam->cOEMOptItems); + + // Fill out tree view items. + + // New section. + pOEMUIParam->pOEMOptItems[0].Level = 1; + pOEMUIParam->pOEMOptItems[0].Flags = OPTIF_COLLAPSE; + pOEMUIParam->pOEMOptItems[0].pName = GetStringResource(pOEMUIParam->hOEMHeap, pOEMUIParam->hModule, IDS_DEV_SECTION); + pOEMUIParam->pOEMOptItems[0].Sel = dwDeviceValue; + + pOEMUIParam->pOEMOptItems[0].pOptType = CreateOptType(pOEMUIParam->hOEMHeap, 2); + + pOEMUIParam->pOEMOptItems[0].pOptType->Type = TVOT_UDARROW; + pOEMUIParam->pOEMOptItems[0].pOptType->pOptParam[1].IconID = 0; + pOEMUIParam->pOEMOptItems[0].pOptType->pOptParam[1].lParam = 100; + } + + return S_OK; +} + + +//////////////////////////////////////////////////////////////////////////////// +// +// Adds property page to Document property sheet. +// +HRESULT hrOEMDocumentPropertySheets(PPROPSHEETUI_INFO pPSUIInfo, LPARAM lParam, + IPrintOemDriverUI* pOEMHelp) +{ + LONG_PTR lResult = 0; + HRESULT hrResult = S_OK; + + VERBOSE(DLLTEXT("hrOEMDocumentPropertySheets() entry.\r\n")); + + UNREFERENCED_PARAMETER(pOEMHelp); + + // Validate parameters. + if( (NULL == pPSUIInfo) + || + (PROPSHEETUI_INFO_VERSION != pPSUIInfo->Version) + ) + { + ERR(DLLTEXT("hrOEMDocumentPropertySheets() ERROR_INVALID_PARAMETER.\r\n")); + + // Return invalid parameter error. + SetLastError(ERROR_INVALID_PARAMETER); + return E_FAIL; + } + + // Do action. + switch(pPSUIInfo->Reason) + { + case PROPSHEETUI_REASON_INIT: + { + DWORD dwSheets = 0; + PCBUSERDATA pUserData; + POEMUIPSPARAM pOEMUIParam = (POEMUIPSPARAM) pPSUIInfo->lParamInit; + HANDLE hHeap = pOEMUIParam->hOEMHeap; + POEMDEV pOEMDev = (POEMDEV) pOEMUIParam->pOEMDM; + COMPROPSHEETUI Sheet; + + + // Init property page. + memset(&Sheet, 0, sizeof(COMPROPSHEETUI)); + Sheet.cbSize = sizeof(COMPROPSHEETUI); + Sheet.Flags = CPSUIF_UPDATE_PERMISSION; + Sheet.hInstCaller = ghInstance; + Sheet.pCallerName = GetStringResource(hHeap, ghInstance, IDS_NAME); + Sheet.pHelpFile = NULL; + Sheet.pfnCallBack = OEMDocUICallBack2; + Sheet.pDlgPage = CPSUI_PDLGPAGE_TREEVIEWONLY; + Sheet.cOptItem = 1; + Sheet.IconID = IDI_CPSUI_PRINTER; + Sheet.pOptItemName = GetStringResource(hHeap, ghInstance, IDS_SECTION); + Sheet.CallerVersion = 0x100; + Sheet.OptItemVersion = 0x100; + + // Init user data. + pUserData = (PCBUSERDATA) HeapAlloc(hHeap, HEAP_ZERO_MEMORY, sizeof(CBUSERDATA)); + if (NULL == pUserData) + { + ERR(DLLTEXT("hrOEMDocumentPropertySheets() failed to allocate user data.\r\n")); + + hrResult = E_OUTOFMEMORY; + goto Exit; + } + + pUserData->hComPropSheet = pPSUIInfo->hComPropSheet; + pUserData->pfnComPropSheet = pPSUIInfo->pfnComPropSheet; + pUserData->pOEMUIParam = pOEMUIParam; + Sheet.UserData = (ULONG_PTR) pUserData; + + // Create OptItems for page. + Sheet.pOptItem = CreateOptItems(hHeap, Sheet.cOptItem); + if (NULL == Sheet.pOptItem) + { + ERR(DLLTEXT("hrOEMDocumentPropertySheets() failed to allocate OPTITEMs.\r\n")); + + hrResult = E_OUTOFMEMORY; + goto Exit; + } + + // Initialize OptItems + Sheet.pOptItem[0].Level = 1; + Sheet.pOptItem[0].Flags = OPTIF_COLLAPSE; + Sheet.pOptItem[0].pName = GetStringResource(hHeap, ghInstance, IDS_SECTION); + Sheet.pOptItem[0].Sel = pOEMDev->dwDriverData; + + Sheet.pOptItem[0].pOptType = CreateOptType(hHeap, 2); + if (NULL == Sheet.pOptItem[0].pOptType) + { + ERR(DLLTEXT("hrOEMDocumentPropertySheets() failed to allocate OPTTYPE.\r\n")); + + hrResult = E_OUTOFMEMORY; + goto Exit; + } + + Sheet.pOptItem[0].pOptType->Type = TVOT_UDARROW; + Sheet.pOptItem[0].pOptType->pOptParam[1].IconID = 0; + Sheet.pOptItem[0].pOptType->pOptParam[1].lParam = 100; + + // NOTE: Don't need to do anything with Activation Contexts + // to get Themed UI, since Compstui will create this + // page using it's Activation Context which specifies + // comctl v6. + + // Add property sheets. + lResult = pPSUIInfo->pfnComPropSheet(pPSUIInfo->hComPropSheet, CPSFUNC_ADD_PCOMPROPSHEETUI, + (LPARAM)&Sheet, (LPARAM)&dwSheets); + } + break; + + case PROPSHEETUI_REASON_GET_INFO_HEADER: + { + PPROPSHEETUI_INFO_HEADER pHeader = (PPROPSHEETUI_INFO_HEADER) lParam; + + pHeader->pTitle = (LPTSTR)PROP_TITLE; + lResult = TRUE; + } + break; + + case PROPSHEETUI_REASON_GET_ICON: + // No icon + lResult = 0; + break; + + case PROPSHEETUI_REASON_SET_RESULT: + { + PSETRESULT_INFO pInfo = (PSETRESULT_INFO) lParam; + + lResult = pInfo->Result; + } + break; + + case PROPSHEETUI_REASON_DESTROY: + lResult = TRUE; + break; + } + +Exit: + + pPSUIInfo->Result = lResult; + return hrResult; +} + + +//////////////////////////////////////////////////////////////////////////////// +// +// Adds property page to printer property sheet. +// +HRESULT hrOEMDevicePropertySheets(PPROPSHEETUI_INFO pPSUIInfo, LPARAM lParam) +{ + LONG_PTR lResult = 0; + + + VERBOSE(DLLTEXT("hrOEMDevicePropertySheets entry\r\n")); + + // Validate parameters. + if( (NULL == pPSUIInfo) + || + (PROPSHEETUI_INFO_VERSION != pPSUIInfo->Version) + ) + { + ERR(DLLTEXT("hrOEMDevicePropertySheets() ERROR_INVALID_PARAMETER.\r\n")); + + // Return invalid parameter error. + SetLastError(ERROR_INVALID_PARAMETER); + return E_FAIL; + } + + // Do action. + switch(pPSUIInfo->Reason) + { + case PROPSHEETUI_REASON_INIT: + { + PROPSHEETPAGE Page; + + // Init property page. + memset(&Page, 0, sizeof(PROPSHEETPAGE)); + Page.dwSize = sizeof(PROPSHEETPAGE); + Page.dwFlags = PSP_DEFAULT; + Page.hInstance = ghInstance; + Page.pszTemplate = MAKEINTRESOURCE(IDD_DEVICE_PROPPAGE); + Page.pfnDlgProc = DevicePropPageProc; + Page.hActCtx = GetMyActivationContext(); + + // Set the flag to indicate that our PROPSHEETPAGE + // has an Activation Context. + // The Activation Context indicates with version of + // comctl for Compstui to create our PROPSHEETPAGE + // with. To get Themed UI we need to specify comctl v6. + if( (NULL != Page.hActCtx) && (INVALID_HANDLE_VALUE != Page.hActCtx)) + { + Page.dwFlags |= PSP_USEFUSIONCONTEXT; + } + + // Add property sheets. + lResult = pPSUIInfo->pfnComPropSheet(pPSUIInfo->hComPropSheet, CPSFUNC_ADD_PROPSHEETPAGE, (LPARAM)&Page, 0); + + // NOTE: The Activation Context is released when the DLL is unloaded + // during DLL_PROCESS_DETACH. + } + break; + + case PROPSHEETUI_REASON_GET_INFO_HEADER: + { + PPROPSHEETUI_INFO_HEADER pHeader = (PPROPSHEETUI_INFO_HEADER) lParam; + + pHeader->pTitle = (LPTSTR)PROP_TITLE; + lResult = TRUE; + } + break; + + case PROPSHEETUI_REASON_GET_ICON: + // No icon + lResult = 0; + break; + + case PROPSHEETUI_REASON_SET_RESULT: + { + PSETRESULT_INFO pInfo = (PSETRESULT_INFO) lParam; + + lResult = pInfo->Result; + } + break; + + case PROPSHEETUI_REASON_DESTROY: + lResult = TRUE; + break; + } + + pPSUIInfo->Result = lResult; + return S_OK; +} + + +//////////////////////////////////////////////////////////////////////////////// +// +// OptItems call back for OEM printer property UI. +// +LONG APIENTRY OEMPrinterUICallBack(PCPSUICBPARAM pCallbackParam, POEMCUIPPARAM pOEMUIParam) +{ + LONG lReturn = CPSUICB_ACTION_NONE; + + VERBOSE(DLLTEXT("OEMPrinterUICallBack() entry.\r\n")); + + switch(pCallbackParam->Reason) + { + case CPSUICB_REASON_APPLYNOW: + { + DWORD dwDriverValue = pOEMUIParam->pOEMOptItems[0].Sel; + + // Store OptItems state in printer data. + SetPrinterData(pOEMUIParam->hPrinter, OEMUI_VALUE, REG_DWORD, (PBYTE) &dwDriverValue, sizeof(DWORD)); + } + break; + + default: + break; + } + + return lReturn; +} + + +//////////////////////////////////////////////////////////////////////////////// +// +// Call back for OEM device property UI. +// +#pragma warning(push) +#pragma warning(disable:6262) // this method exceeds the default threshold for stack usage by a few bytes. +INT_PTR CALLBACK DevicePropPageProc(HWND hDlg, UINT uiMsg, WPARAM wParam, LPARAM lParam) +{ + switch (uiMsg) + { + case WM_COMMAND: + switch(HIWORD(wParam)) + { + case BN_CLICKED: + switch(LOWORD(wParam)) + { + case IDC_CALIBRATE: + // Just display a message that the printer is calibrated, + // since we don't acutally calibrate anything. + { + TCHAR szName[MAX_PATH]; + TCHAR szCalibrated[MAX_PATH]; + + + LoadString(ghInstance, IDS_NAME, szName, sizeof(szName)/sizeof(szName[0])); + LoadString(ghInstance, IDS_CALIBRATED, szCalibrated, sizeof(szCalibrated)/sizeof(szCalibrated[0])); + MessageBox(hDlg, szCalibrated, szName, MB_OK); + } + break; + } + break; + + default: + return FALSE; + } + return TRUE; + + case WM_NOTIFY: + { + switch (((LPNMHDR)lParam)->code) // type of notification message + { + case PSN_SETACTIVE: + break; + + case PSN_KILLACTIVE: + break; + + case PSN_APPLY: + break; + + case PSN_RESET: + break; + } + } + break; + } + + return FALSE; +} +#pragma warning(pop) + + +//////////////////////////////////////////////////////////////////////////////// +// +// OptItems call back for OEM document property UI. +// +LONG APIENTRY OEMDocUICallBack(PCPSUICBPARAM pCallbackParam, POEMCUIPPARAM pOEMUIParam) +{ + LONG lReturn = CPSUICB_ACTION_NONE; + POEMDEV pOEMDev = (POEMDEV) pOEMUIParam->pOEMDM; + + VERBOSE(DLLTEXT("OEMDocUICallBack() entry.\r\n")); + + switch(pCallbackParam->Reason) + { + case CPSUICB_REASON_APPLYNOW: + // Store OptItems state in DEVMODE. + pOEMDev->dwAdvancedData = pOEMUIParam->pOEMOptItems[0].Sel; + break; + + case CPSUICB_REASON_KILLACTIVE: + pOEMDev->dwAdvancedData = pOEMUIParam->pOEMOptItems[0].Sel; + break; + + case CPSUICB_REASON_SETACTIVE: + if((DWORD)(pOEMUIParam->pOEMOptItems[0].Sel) != pOEMDev->dwAdvancedData) + { + pOEMUIParam->pOEMOptItems[0].Sel = pOEMDev->dwAdvancedData; + pOEMUIParam->pOEMOptItems[0].Flags |= OPTIF_CHANGED; + lReturn = CPSUICB_ACTION_OPTIF_CHANGED; + } + break; + + default: + break; + } + + return lReturn; +} + + +LONG APIENTRY OEMDocUICallBack2(PCPSUICBPARAM pCallbackParam) +{ + LONG lReturn = CPSUICB_ACTION_NONE; + PCBUSERDATA pUserData = (PCBUSERDATA) pCallbackParam->UserData; + POEMDEV pOEMDev = (POEMDEV) pUserData->pOEMUIParam->pOEMDM; + + + VERBOSE(DLLTEXT("OEMDocUICallBack2() entry.\r\n")); + + switch(pCallbackParam->Reason) + { + case CPSUICB_REASON_APPLYNOW: + pOEMDev->dwDriverData = pCallbackParam->pOptItem[0].Sel; + pUserData->pfnComPropSheet(pUserData->hComPropSheet, CPSFUNC_SET_RESULT, + (LPARAM)pUserData->hPropPage, + (LPARAM)CPSUI_OK); + break; + + case CPSUICB_REASON_KILLACTIVE: + pOEMDev->dwDriverData = pCallbackParam->pOptItem[0].Sel; + break; + + case CPSUICB_REASON_SETACTIVE: + if((DWORD)(pCallbackParam->pOptItem[0].Sel) != pOEMDev->dwDriverData) + { + pCallbackParam->pOptItem[0].Sel = pOEMDev->dwDriverData; + pCallbackParam->pOptItem[0].Flags |= OPTIF_CHANGED; + lReturn = CPSUICB_ACTION_OPTIF_CHANGED; + } + break; + + default: + break; + } + + return lReturn; +} + + +//////////////////////////////////////////////////////////////////////////////// +// +// Creates and Initializes OptItems. +// +static POPTITEM CreateOptItems(HANDLE hHeap, DWORD dwOptItems) +{ + POPTITEM pOptItems = NULL; + SIZE_T sizeOfOptItems = 0; + + // Compute the size of memory needed for the OptItems: + if (SUCCEEDED(SIZETMult(sizeof(OPTITEM), (SIZE_T)dwOptItems, &sizeOfOptItems))) + { + // Allocate memory for OptItems; + pOptItems = (POPTITEM) HeapAlloc(hHeap, HEAP_ZERO_MEMORY, sizeOfOptItems); + if(NULL != pOptItems) + { + InitOptItems(pOptItems, dwOptItems); + } + else + { + ERR(DLLTEXT("CreateOptItems() failed to allocate memory for OPTITEMs!\r\n")); + } + } + else + { + ERR(DLLTEXT("CreateOptItems() failed to compute necessary memory size for OPTITEMs!\r\n")); + } + + return pOptItems; +} + + +//////////////////////////////////////////////////////////////////////////////// +// +// Initializes OptItems. +// +static void InitOptItems(POPTITEM pOptItems, DWORD dwOptItems) +{ + VERBOSE(DLLTEXT("InitOptItems() entry.\r\n")); + + // Zero out memory. + memset(pOptItems, 0, sizeof(OPTITEM) * dwOptItems); + + // Set each OptItem's size, and Public DM ID. + for(DWORD dwCount = 0; dwCount < dwOptItems; dwCount++) + { + pOptItems[dwCount].cbSize = sizeof(OPTITEM); + pOptItems[dwCount].DMPubID = DMPUB_NONE; + } +} + + +//////////////////////////////////////////////////////////////////////////////// +// +// Allocates and initializes OptType for OptItem. +// +static POPTTYPE CreateOptType(HANDLE hHeap, WORD wOptParams) +{ + POPTTYPE pOptType = NULL; + + + VERBOSE(DLLTEXT("CreateOptType() entry.\r\n")); + + // Allocate memory from the heap for the OPTTYPE; the driver will take care of clean up. + pOptType = (POPTTYPE) HeapAlloc(hHeap, HEAP_ZERO_MEMORY, sizeof(OPTTYPE)); + if(NULL != pOptType) + { + // Initialize OPTTYPE. + pOptType->cbSize = sizeof(OPTTYPE); + pOptType->Count = wOptParams; + + // Allocate memory from the heap for the OPTPARAMs for the OPTTYPE. + pOptType->pOptParam = (POPTPARAM) HeapAlloc(hHeap, HEAP_ZERO_MEMORY, wOptParams * sizeof(OPTPARAM)); + if(NULL != pOptType->pOptParam) + { + // Initialize the OPTPARAMs. + for(WORD wCount = 0; wCount < wOptParams; wCount++) + { + pOptType->pOptParam[wCount].cbSize = sizeof(OPTPARAM); + } + } + else + { + ERR(DLLTEXT("CreateOptType() failed to allocated memory for OPTPARAMs!\r\n")); + + // Free allocated memory and return NULL. + HeapFree(hHeap, 0, pOptType); + pOptType = NULL; + } + } + else + { + ERR(DLLTEXT("CreateOptType() failed to allocated memory for OPTTYPE!\r\n")); + } + + return pOptType; +} + +//////////////////////////////////////////////////////////////////////////////////// +// +// Retrieves pointer to a String resource. +// +static PTSTR GetStringResource(HANDLE hHeap, HANDLE hModule, UINT uResource) +{ + int nResult; + DWORD dwSize = MAX_PATH; + PTSTR pszString = NULL; + + + VERBOSE(DLLTEXT("GetStringResource entered.\r\n")); + + // Allocate buffer for string resource from heap; let the driver clean it up. + pszString = (PTSTR) HeapAlloc(hHeap, HEAP_ZERO_MEMORY, dwSize * sizeof(TCHAR)); + if(NULL != pszString) + { + // Load string resource; resize after loading so as not to waste memory. + nResult = LoadString((HMODULE)hModule, uResource, pszString, dwSize); + if(nResult > 0) + { + PTSTR pszTemp; + + pszTemp = (PTSTR) HeapReAlloc(hHeap, HEAP_ZERO_MEMORY, pszString, (nResult + 1) * sizeof(TCHAR)); + if(NULL != pszTemp) + { + pszString = pszTemp; + } + else + { + ERR(DLLTEXT("GetStringResource() HeapReAlloc() of string retrieved failed!\r\n")); + } + } + else + { + ERR(DLLTEXT("GetStringResource() failed to load string resource!\r\n")); + + pszString = NULL; + } + } + else + { + ERR(DLLTEXT("GetStringResource() failed to allocate string buffer!\r\n")); + } + + return pszString; +} + + diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/oemui.h b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/oemui.h new file mode 100644 index 00000000..0f392cc5 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/oemui.h @@ -0,0 +1,45 @@ +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright 1997 - 2003 Microsoft Corporation. All Rights Reserved. +// +// FILE: OEMUI.H +// +// +// PURPOSE: Define common data types, and external function prototypes +// for OEMUI Test Module. +// + +#pragma once + +#include "OEM.H" +#include "DEVMODE.H" +#include "globals.h" + + +//////////////////////////////////////////////////////// +// OEM UI Defines +//////////////////////////////////////////////////////// + + +// OEM Signature and version. +#define PROP_TITLE L"OEM UI Page" +#define DLLTEXT(s) "ThemeUI: " s + + +// Printer registry keys where OEM data is stored. +#define OEMUI_VALUE TEXT("OEMUI_VALUE") +#define OEMUI_DEVICE_VALUE TEXT("OEMUI_DEVICE_VALUE") + + + +//////////////////////////////////////////////////////// +// Prototypes +//////////////////////////////////////////////////////// + +HRESULT hrOEMPropertyPage(DWORD dwMode, POEMCUIPPARAM pOEMUIParam); +HRESULT hrOEMDocumentPropertySheets(PPROPSHEETUI_INFO pPSUIInfo, LPARAM lParam, IPrintOemDriverUI* pOEMHelp); +HRESULT hrOEMDevicePropertySheets(PPROPSHEETUI_INFO pPSUIInfo, LPARAM lParam); + diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/precomp.h b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/precomp.h new file mode 100644 index 00000000..0607fe55 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/precomp.h @@ -0,0 +1,61 @@ +// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF +// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO +// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A +// PARTICULAR PURPOSE. +// +// Copyright 1997 - 2003 Microsoft Corporation. All Rights Reserved. +// +// FILE: precomp.H +// +// +// PURPOSE: Common headers that don't change often +// + +#pragma once + +// Necessary for compiling under VC. +#if(!defined(WINVER) || (WINVER < 0x0500)) + #undef WINVER + #define WINVER 0x0500 +#endif +#if(!defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500)) + #undef _WIN32_WINNT + #define _WIN32_WINNT 0x0500 +#endif + +// Isolation define for using ComCtrl v6. +#ifndef ISOLATION_AWARE_ENABLED + #define ISOLATION_AWARE_ENABLED +#endif + + +// Required header files that shouldn't change often. + +#include <STDDEF.H> +#include <STDLIB.H> +#include <OBJBASE.H> +#include <STDARG.H> +#include <STDIO.H> +#include <WINDEF.H> +#include <WINERROR.H> +#include <WINBASE.H> +#include <WINGDI.H> +#include <WINDDI.H> +#include <WINSPOOL.H> +#include <TCHAR.H> +#include <EXCPT.H> +#include <ASSERT.H> +#include <PRSHT.H> +#include "COMPSTUI.H" +#include <WINDDIUI.H> +#include <PRINTOEM.H> +#include <COMMCTRL.H> +#include <INITGUID.H> +#include <PRCOMOEM.H> + +// Safe character string functions to detect buffer overrun conditions: +#include <strsafe.h> + +// Safe integer functions to detect integer overflow/underflow conditions: +#include <intsafe.h> + diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/precompsrc.cpp b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/precompsrc.cpp new file mode 100644 index 00000000..5944cf51 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/precompsrc.cpp @@ -0,0 +1 @@ +#include "precomp.h"
\ No newline at end of file diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/resource.h b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/resource.h new file mode 100644 index 00000000..71d3d3d6 --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/resource.h @@ -0,0 +1,24 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by OEMUI.rc +// +#define IDS_SECTION 1 +#define IDS_CALIBRATED 2 +#define IDS_NAME 3 +#define IDS_DEV_SECTION 4 +#define IDS_DEVICE_SECTION 4 +#define IDS_ADV_SECTION 10 +#define IDD_DEVICE_PROPPAGE 106 +#define IDD_DOC_PROPPAGE 107 +#define IDC_CALIBRATE 1001 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 103 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1002 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/themeuismpl.def b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/themeuismpl.def new file mode 100644 index 00000000..8e60b60d --- /dev/null +++ b/print/OEM Printer Customization Plug-in Samples/C++/ThemeUI/themeuismpl.def @@ -0,0 +1,3 @@ +LIBRARY ThemeUISmpl +EXPORTS DllGetClassObject PRIVATE + DllCanUnloadNow PRIVATE |
