diff options
Diffstat (limited to 'plugins/HwHotKeys')
| -rw-r--r-- | plugins/HwHotKeys/HwHotKeys_10.vcxproj | 206 | ||||
| -rw-r--r-- | plugins/HwHotKeys/HwHotKeys_10.vcxproj.filters | 56 | ||||
| -rw-r--r-- | plugins/HwHotKeys/HwHotKeys_12.vcxproj | 205 | ||||
| -rw-r--r-- | plugins/HwHotKeys/HwHotKeys_12.vcxproj.filters | 56 | ||||
| -rw-r--r-- | plugins/HwHotKeys/res/HwHotKeys.rc | 110 | ||||
| -rw-r--r-- | plugins/HwHotKeys/res/HwHotKeys_version.rc | 38 | ||||
| -rw-r--r-- | plugins/HwHotKeys/src/HwHotKeys.cpp | 23 | ||||
| -rw-r--r-- | plugins/HwHotKeys/src/HwHotKeys.h | 87 | ||||
| -rw-r--r-- | plugins/HwHotKeys/src/HwHotKeys_Dlg.cpp | 108 | ||||
| -rw-r--r-- | plugins/HwHotKeys/src/HwHotKeys_DllMain.cpp | 150 | ||||
| -rw-r--r-- | plugins/HwHotKeys/src/HwHotKeys_KbdHook.cpp | 133 | ||||
| -rw-r--r-- | plugins/HwHotKeys/src/HwHotKeys_KeyName.cpp | 243 | ||||
| -rw-r--r-- | plugins/HwHotKeys/src/HwHotKeys_Util.cpp | 139 | ||||
| -rw-r--r-- | plugins/HwHotKeys/src/HwHotKeys_resource.h | bin | 0 -> 1340 bytes | |||
| -rw-r--r-- | plugins/HwHotKeys/src/HwHotKeys_version.h | 41 | ||||
| -rw-r--r-- | plugins/HwHotKeys/src/stdafx.cpp | 18 | 
16 files changed, 1613 insertions, 0 deletions
| diff --git a/plugins/HwHotKeys/HwHotKeys_10.vcxproj b/plugins/HwHotKeys/HwHotKeys_10.vcxproj new file mode 100644 index 0000000000..effa6ac14d --- /dev/null +++ b/plugins/HwHotKeys/HwHotKeys_10.vcxproj @@ -0,0 +1,206 @@ +<?xml version="1.0" encoding="utf-8"?>
 +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 +  <ItemGroup Label="ProjectConfigurations">
 +    <ProjectConfiguration Include="Debug|Win32">
 +      <Configuration>Debug</Configuration>
 +      <Platform>Win32</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Debug|x64">
 +      <Configuration>Debug</Configuration>
 +      <Platform>x64</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Release|Win32">
 +      <Configuration>Release</Configuration>
 +      <Platform>Win32</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Release|x64">
 +      <Configuration>Release</Configuration>
 +      <Platform>x64</Platform>
 +    </ProjectConfiguration>
 +  </ItemGroup>
 +  <PropertyGroup Label="Globals">
 +    <ProjectGuid>{639E2B3A-64F2-4152-B5BB-12468E5D60B6}</ProjectGuid>
 +    <Keyword>Win32Proj</Keyword>
 +    <RootNamespace>HwHotKeys</RootNamespace>
 +    <ProjectName>HwHotKeys</ProjectName>
 +  </PropertyGroup>
 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseDebugLibraries>true</UseDebugLibraries>
 +    <CharacterSet>Unicode</CharacterSet>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseDebugLibraries>true</UseDebugLibraries>
 +    <CharacterSet>Unicode</CharacterSet>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseDebugLibraries>false</UseDebugLibraries>
 +    <WholeProgramOptimization>true</WholeProgramOptimization>
 +    <CharacterSet>Unicode</CharacterSet>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseDebugLibraries>false</UseDebugLibraries>
 +    <WholeProgramOptimization>true</WholeProgramOptimization>
 +    <CharacterSet>Unicode</CharacterSet>
 +  </PropertyGroup>
 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 +  <ImportGroup Label="ExtensionSettings">
 +  </ImportGroup>
 +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +  </ImportGroup>
 +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +  </ImportGroup>
 +  <PropertyGroup Label="UserMacros" />
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 +    <LinkIncremental>true</LinkIncremental>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 +    <LinkIncremental>true</LinkIncremental>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 +    <LinkIncremental>false</LinkIncremental>
 +    <OutDir>$(SolutionDir)$(Configuration)\Plugins\</OutDir>
 +    <IntDir>$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
 +    <IgnoreImportLibrary>true</IgnoreImportLibrary>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 +    <LinkIncremental>false</LinkIncremental>
 +    <OutDir>$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
 +    <IntDir>$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
 +  </PropertyGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 +    <ClCompile>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <WarningLevel>Level3</WarningLevel>
 +      <Optimization>Disabled</Optimization>
 +      <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <PrecompiledHeaderFile>HwHotKeys.h</PrecompiledHeaderFile>
 +      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
 +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 +    </ClCompile>
 +    <Link>
 +      <SubSystem>Windows</SubSystem>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
 +    </Link>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <AdditionalIncludeDirectories>..\..\include\msapi</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 +    <ClCompile>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <WarningLevel>Level3</WarningLevel>
 +      <Optimization>Disabled</Optimization>
 +      <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <PrecompiledHeaderFile>HwHotKeys.h</PrecompiledHeaderFile>
 +      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
 +      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
 +    </ClCompile>
 +    <Link>
 +      <SubSystem>Windows</SubSystem>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
 +    </Link>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <AdditionalIncludeDirectories>..\..\include\msapi</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 +    <ClCompile>
 +      <WarningLevel>Level3</WarningLevel>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <Optimization>Full</Optimization>
 +      <FunctionLevelLinking>true</FunctionLevelLinking>
 +      <IntrinsicFunctions>false</IntrinsicFunctions>
 +      <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
 +      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 +      <PrecompiledHeaderFile>HwHotKeys.h</PrecompiledHeaderFile>
 +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 +    </ClCompile>
 +    <Link>
 +      <SubSystem>Windows</SubSystem>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 +      <OptimizeReferences>true</OptimizeReferences>
 +      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
 +      <SetChecksum>true</SetChecksum>
 +      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
 +      <AdditionalOptions>/PDBALTPATH:%_PDB% %(AdditionalOptions)</AdditionalOptions>
 +    </Link>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +    </ResourceCompile>
 +    <ResourceCompile>
 +      <AdditionalIncludeDirectories>..\..\include\msapi</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 +    <ClCompile>
 +      <WarningLevel>Level3</WarningLevel>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <Optimization>Full</Optimization>
 +      <FunctionLevelLinking>true</FunctionLevelLinking>
 +      <IntrinsicFunctions>false</IntrinsicFunctions>
 +      <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
 +      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 +      <PrecompiledHeaderFile>HwHotKeys.h</PrecompiledHeaderFile>
 +    </ClCompile>
 +    <Link>
 +      <SubSystem>Windows</SubSystem>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 +      <OptimizeReferences>true</OptimizeReferences>
 +      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
 +      <SetChecksum>true</SetChecksum>
 +      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
 +      <AdditionalOptions>/PDBALTPATH:%_PDB% %(AdditionalOptions)</AdditionalOptions>
 +    </Link>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +    </ResourceCompile>
 +    <ResourceCompile>
 +      <AdditionalIncludeDirectories>..\..\include\msapi</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +  </ItemDefinitionGroup>
 +  <ItemGroup>
 +    <ClInclude Include="src\HwHotKeys.h" />
 +    <ClInclude Include="src\HwHotKeys_version.h" />
 +    <ClInclude Include="src\HwHotKeys_resource.h" />
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ClCompile Include="src\HwHotKeys_Dlg.cpp" />
 +    <ClCompile Include="src\HwHotKeys_DllMain.cpp" />
 +    <ClCompile Include="src\HwHotKeys_KbdHook.cpp" />
 +    <ClCompile Include="src\HwHotKeys_KeyName.cpp" />
 +    <ClCompile Include="src\HwHotKeys_Util.cpp" />
 +    <ClCompile Include="src\stdafx.cpp">
 +      <PrecompiledHeader>Create</PrecompiledHeader>
 +    </ClCompile>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ResourceCompile Include="res\HwHotKeys_version.rc" />
 +    <ResourceCompile Include="res\HwHotKeys.rc" />
 +  </ItemGroup>
 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 +  <ImportGroup Label="ExtensionTargets">
 +  </ImportGroup>
 +</Project>
\ No newline at end of file diff --git a/plugins/HwHotKeys/HwHotKeys_10.vcxproj.filters b/plugins/HwHotKeys/HwHotKeys_10.vcxproj.filters new file mode 100644 index 0000000000..0dc01c54f3 --- /dev/null +++ b/plugins/HwHotKeys/HwHotKeys_10.vcxproj.filters @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?>
 +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 +  <ItemGroup>
 +    <Filter Include="Source Files">
 +      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
 +      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
 +    </Filter>
 +    <Filter Include="Resource Files">
 +      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
 +      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
 +    </Filter>
 +    <Filter Include="Header Files">
 +      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
 +      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
 +    </Filter>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ClInclude Include="src\HwHotKeys.h">
 +      <Filter>Header Files</Filter>
 +    </ClInclude>
 +    <ClInclude Include="src\HwHotKeys_version.h">
 +      <Filter>Header Files</Filter>
 +    </ClInclude>
 +    <ClInclude Include="src\HwHotKeys_resource.h">
 +      <Filter>Header Files</Filter>
 +    </ClInclude>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ClCompile Include="src\HwHotKeys_Dlg.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="src\HwHotKeys_DllMain.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="src\HwHotKeys_KbdHook.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="src\HwHotKeys_Util.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="src\HwHotKeys_KeyName.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="src\stdafx.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ResourceCompile Include="res\HwHotKeys.rc">
 +      <Filter>Resource Files</Filter>
 +    </ResourceCompile>
 +    <ResourceCompile Include="res\HwHotKeys_version.rc">
 +      <Filter>Resource Files</Filter>
 +    </ResourceCompile>
 +  </ItemGroup>
 +</Project>
\ No newline at end of file diff --git a/plugins/HwHotKeys/HwHotKeys_12.vcxproj b/plugins/HwHotKeys/HwHotKeys_12.vcxproj new file mode 100644 index 0000000000..54e4db1a63 --- /dev/null +++ b/plugins/HwHotKeys/HwHotKeys_12.vcxproj @@ -0,0 +1,205 @@ +<?xml version="1.0" encoding="utf-8"?>
 +<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 +  <ItemGroup Label="ProjectConfigurations">
 +    <ProjectConfiguration Include="Debug|Win32">
 +      <Configuration>Debug</Configuration>
 +      <Platform>Win32</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Debug|x64">
 +      <Configuration>Debug</Configuration>
 +      <Platform>x64</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Release|Win32">
 +      <Configuration>Release</Configuration>
 +      <Platform>Win32</Platform>
 +    </ProjectConfiguration>
 +    <ProjectConfiguration Include="Release|x64">
 +      <Configuration>Release</Configuration>
 +      <Platform>x64</Platform>
 +    </ProjectConfiguration>
 +  </ItemGroup>
 +  <PropertyGroup Label="Globals">
 +    <ProjectGuid>{639E2B3A-64F2-4152-B5BB-12468E5D60B6}</ProjectGuid>
 +    <Keyword>Win32Proj</Keyword>
 +    <RootNamespace>HwHotKeys</RootNamespace>
 +    <ProjectName>HwHotKeys</ProjectName>
 +  </PropertyGroup>
 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseDebugLibraries>true</UseDebugLibraries>
 +    <PlatformToolset>v120_xp</PlatformToolset>
 +    <CharacterSet>Unicode</CharacterSet>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseDebugLibraries>true</UseDebugLibraries>
 +    <PlatformToolset>v120_xp</PlatformToolset>
 +    <CharacterSet>Unicode</CharacterSet>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseDebugLibraries>false</UseDebugLibraries>
 +    <PlatformToolset>v120_xp</PlatformToolset>
 +    <WholeProgramOptimization>true</WholeProgramOptimization>
 +    <CharacterSet>Unicode</CharacterSet>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 +    <ConfigurationType>DynamicLibrary</ConfigurationType>
 +    <UseDebugLibraries>false</UseDebugLibraries>
 +    <PlatformToolset>v120_xp</PlatformToolset>
 +    <WholeProgramOptimization>true</WholeProgramOptimization>
 +    <CharacterSet>Unicode</CharacterSet>
 +  </PropertyGroup>
 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 +  <ImportGroup Label="ExtensionSettings">
 +  </ImportGroup>
 +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +  </ImportGroup>
 +  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +  </ImportGroup>
 +  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
 +    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
 +  </ImportGroup>
 +  <PropertyGroup Label="UserMacros" />
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 +    <LinkIncremental>true</LinkIncremental>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 +    <LinkIncremental>true</LinkIncremental>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 +    <LinkIncremental>false</LinkIncremental>
 +    <OutDir>$(SolutionDir)$(Configuration)\Plugins\</OutDir>
 +    <IntDir>$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
 +    <IgnoreImportLibrary>true</IgnoreImportLibrary>
 +  </PropertyGroup>
 +  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 +    <LinkIncremental>false</LinkIncremental>
 +    <OutDir>$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
 +    <IntDir>$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
 +  </PropertyGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
 +    <ClCompile>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <WarningLevel>Level3</WarningLevel>
 +      <Optimization>Disabled</Optimization>
 +      <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <PrecompiledHeaderFile>HwHotKeys.h</PrecompiledHeaderFile>
 +    </ClCompile>
 +    <Link>
 +      <SubSystem>Windows</SubSystem>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
 +      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
 +    </Link>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <AdditionalIncludeDirectories>..\..\include\msapi</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
 +    <ClCompile>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <WarningLevel>Level3</WarningLevel>
 +      <Optimization>Disabled</Optimization>
 +      <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <PrecompiledHeaderFile>HwHotKeys.h</PrecompiledHeaderFile>
 +    </ClCompile>
 +    <Link>
 +      <SubSystem>Windows</SubSystem>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
 +    </Link>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <AdditionalIncludeDirectories>..\..\include\msapi</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
 +    <ClCompile>
 +      <WarningLevel>Level3</WarningLevel>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <Optimization>Full</Optimization>
 +      <FunctionLevelLinking>true</FunctionLevelLinking>
 +      <IntrinsicFunctions>false</IntrinsicFunctions>
 +      <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
 +      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 +      <PrecompiledHeaderFile>HwHotKeys.h</PrecompiledHeaderFile>
 +      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 +    </ClCompile>
 +    <Link>
 +      <SubSystem>Windows</SubSystem>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 +      <OptimizeReferences>true</OptimizeReferences>
 +      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
 +      <SetChecksum>true</SetChecksum>
 +      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
 +    </Link>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +    </ResourceCompile>
 +    <ResourceCompile>
 +      <AdditionalIncludeDirectories>..\..\include\msapi</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +  </ItemDefinitionGroup>
 +  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
 +    <ClCompile>
 +      <WarningLevel>Level3</WarningLevel>
 +      <PrecompiledHeader>Use</PrecompiledHeader>
 +      <Optimization>Full</Optimization>
 +      <FunctionLevelLinking>true</FunctionLevelLinking>
 +      <IntrinsicFunctions>false</IntrinsicFunctions>
 +      <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +      <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
 +      <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
 +      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
 +      <PrecompiledHeaderFile>HwHotKeys.h</PrecompiledHeaderFile>
 +    </ClCompile>
 +    <Link>
 +      <SubSystem>Windows</SubSystem>
 +      <GenerateDebugInformation>true</GenerateDebugInformation>
 +      <EnableCOMDATFolding>true</EnableCOMDATFolding>
 +      <OptimizeReferences>true</OptimizeReferences>
 +      <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
 +      <SetChecksum>true</SetChecksum>
 +      <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
 +    </Link>
 +    <ResourceCompile>
 +      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 +    </ResourceCompile>
 +    <ResourceCompile>
 +      <AdditionalIncludeDirectories>..\..\include\msapi</AdditionalIncludeDirectories>
 +    </ResourceCompile>
 +  </ItemDefinitionGroup>
 +  <ItemGroup>
 +    <ClInclude Include="src\HwHotKeys.h" />
 +    <ClInclude Include="src\HwHotKeys_version.h" />
 +    <ClInclude Include="src\HwHotKeys_resource.h" />
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ClCompile Include="src\HwHotKeys_Dlg.cpp" />
 +    <ClCompile Include="src\HwHotKeys_DllMain.cpp" />
 +    <ClCompile Include="src\HwHotKeys_KbdHook.cpp" />
 +    <ClCompile Include="src\HwHotKeys_KeyName.cpp" />
 +    <ClCompile Include="src\HwHotKeys_Util.cpp" />
 +    <ClCompile Include="src\stdafx.cpp">
 +      <PrecompiledHeader>Create</PrecompiledHeader>
 +    </ClCompile>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ResourceCompile Include="res\HwHotKeys_version.rc" />
 +    <ResourceCompile Include="res\HwHotKeys.rc" />
 +  </ItemGroup>
 +  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 +  <ImportGroup Label="ExtensionTargets">
 +  </ImportGroup>
 +</Project>
\ No newline at end of file diff --git a/plugins/HwHotKeys/HwHotKeys_12.vcxproj.filters b/plugins/HwHotKeys/HwHotKeys_12.vcxproj.filters new file mode 100644 index 0000000000..0dc01c54f3 --- /dev/null +++ b/plugins/HwHotKeys/HwHotKeys_12.vcxproj.filters @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?>
 +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 +  <ItemGroup>
 +    <Filter Include="Source Files">
 +      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
 +      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
 +    </Filter>
 +    <Filter Include="Resource Files">
 +      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
 +      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
 +    </Filter>
 +    <Filter Include="Header Files">
 +      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
 +      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
 +    </Filter>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ClInclude Include="src\HwHotKeys.h">
 +      <Filter>Header Files</Filter>
 +    </ClInclude>
 +    <ClInclude Include="src\HwHotKeys_version.h">
 +      <Filter>Header Files</Filter>
 +    </ClInclude>
 +    <ClInclude Include="src\HwHotKeys_resource.h">
 +      <Filter>Header Files</Filter>
 +    </ClInclude>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ClCompile Include="src\HwHotKeys_Dlg.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="src\HwHotKeys_DllMain.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="src\HwHotKeys_KbdHook.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="src\HwHotKeys_Util.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="src\HwHotKeys_KeyName.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +    <ClCompile Include="src\stdafx.cpp">
 +      <Filter>Source Files</Filter>
 +    </ClCompile>
 +  </ItemGroup>
 +  <ItemGroup>
 +    <ResourceCompile Include="res\HwHotKeys.rc">
 +      <Filter>Resource Files</Filter>
 +    </ResourceCompile>
 +    <ResourceCompile Include="res\HwHotKeys_version.rc">
 +      <Filter>Resource Files</Filter>
 +    </ResourceCompile>
 +  </ItemGroup>
 +</Project>
\ No newline at end of file diff --git a/plugins/HwHotKeys/res/HwHotKeys.rc b/plugins/HwHotKeys/res/HwHotKeys.rc new file mode 100644 index 0000000000..693266bbe8 --- /dev/null +++ b/plugins/HwHotKeys/res/HwHotKeys.rc @@ -0,0 +1,110 @@ +// Microsoft Visual C++ generated resource script.
 +//
 +#include "..\src\HwHotKeys_resource.h"
 +
 +#define APSTUDIO_READONLY_SYMBOLS
 +/////////////////////////////////////////////////////////////////////////////
 +//
 +// Generated from the TEXTINCLUDE 2 resource.
 +//
 +#include "winres.h"
 +
 +/////////////////////////////////////////////////////////////////////////////
 +#undef APSTUDIO_READONLY_SYMBOLS
 +
 +/////////////////////////////////////////////////////////////////////////////
 +// Ðóññêèé (Ðîññèÿ) resources
 +
 +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
 +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
 +
 +#ifdef APSTUDIO_INVOKED
 +/////////////////////////////////////////////////////////////////////////////
 +//
 +// TEXTINCLUDE
 +//
 +
 +1 TEXTINCLUDE 
 +BEGIN
 +    "..\\src\\HwHotKeys_resource.h\0"
 +END
 +
 +2 TEXTINCLUDE 
 +BEGIN
 +	"#include <winres.h>\0"
 +END
 +
 +3 TEXTINCLUDE 
 +BEGIN
 +    "\r\n"
 +    "\0"
 +END
 +
 +#endif    // APSTUDIO_INVOKED
 +
 +
 +/////////////////////////////////////////////////////////////////////////////
 +//
 +// Dialog
 +//
 +
 +dlg_options DIALOGEX 0, 0, 315, 247
 +STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | WS_CHILD
 +EXSTYLE WS_EX_CONTROLPARENT
 +FONT 8, "MS Shell Dlg", 0, 0, 0x1
 +BEGIN
 +	CONTROL "Hardware HotKeys plugin\r\nAllows to assign expanded multimedia-keys (only for PS/2-keyboards)", -1, "Static", WS_CHILDWINDOW | WS_VISIBLE | SS_CENTER, 3, 3, 303, 21
 +	CONTROL "Close Miranda", -1, "Static", WS_CHILDWINDOW | WS_VISIBLE | SS_CENTERIMAGE | SS_LEFTNOWORDWRAP, 0, 30, 114, 12
 +	CONTROL "", dlg_close_edit, "Edit", WS_CHILDWINDOW | WS_VISIBLE | WS_TABSTOP | ES_READONLY | ES_AUTOHSCROLL, 114, 30, 114, 12, WS_EX_CLIENTEDGE
 +	CONTROL "Assign", dlg_close_set, "Button", WS_CHILDWINDOW | WS_VISIBLE | WS_TABSTOP, 228, 30, 42, 12
 +	CONTROL "Clear", dlg_close_clear, "Button", WS_CHILDWINDOW | WS_VISIBLE | WS_TABSTOP, 270, 30, 42, 12
 +	CONTROL "Show/Hide contact list", -1, "Static", WS_CHILDWINDOW | WS_VISIBLE | SS_CENTERIMAGE | SS_LEFTNOWORDWRAP, 0, 45, 114, 12
 +	CONTROL "", dlg_hide_edit, "Edit", WS_CHILDWINDOW | WS_VISIBLE | WS_TABSTOP | ES_READONLY | ES_AUTOHSCROLL, 114, 45, 114, 12, WS_EX_CLIENTEDGE
 +	CONTROL "Assign", dlg_hide_set, "Button", WS_CHILDWINDOW | WS_VISIBLE | WS_TABSTOP, 228, 45, 42, 12
 +	CONTROL "Clear", dlg_hide_clear, "Button", WS_CHILDWINDOW | WS_VISIBLE | WS_TABSTOP, 270, 45, 42, 12
 +	CONTROL "Read message", -1, "Static", WS_CHILDWINDOW | WS_VISIBLE | SS_CENTERIMAGE | SS_LEFTNOWORDWRAP, 0, 60, 114, 12
 +	CONTROL "", dlg_read_edit, "Edit", WS_CHILDWINDOW | WS_VISIBLE | WS_TABSTOP | ES_READONLY | ES_AUTOHSCROLL, 114, 60, 114, 12, WS_EX_CLIENTEDGE
 +	CONTROL "Assign", dlg_read_set, "Button", WS_CHILDWINDOW | WS_VISIBLE | WS_TABSTOP, 228, 60, 42, 12
 +	CONTROL "Clear", dlg_read_clear, "Button", WS_CHILDWINDOW | WS_VISIBLE | WS_TABSTOP, 270, 60, 42, 12
 +	CONTROL "Last pressed key", -1, "Button", WS_CHILDWINDOW | WS_VISIBLE | BS_CENTER | BS_GROUPBOX, 0, 174, 312, 63
 +	CONTROL "Extended flag (1xx), Hardware scan code (x23), KeyName", -1, "Static", WS_CHILDWINDOW | WS_VISIBLE | SS_CENTERIMAGE | SS_LEFTNOWORDWRAP, 6, 186, 198, 12
 +	CONTROL "", dlg_scancode_edit, "Edit", WS_CHILDWINDOW | WS_VISIBLE | WS_TABSTOP | ES_READONLY | ES_AUTOHSCROLL, 204, 186, 99, 12, WS_EX_CLIENTEDGE
 +	CONTROL "Combine left/right keys Shift, Ctrl, Win, Alt", dlg_combine, "Button", WS_CHILDWINDOW | WS_VISIBLE | WS_TABSTOP | BS_AUTOCHECKBOX, 6, 204, 291, 9
 +	CONTROL "Combination of keys for assignment", -1, "Static", WS_CHILDWINDOW | WS_VISIBLE | SS_CENTERIMAGE | SS_LEFTNOWORDWRAP, 6, 219, 144, 12
 +	CONTROL "", dlg_keyname_edit, "Edit", WS_CHILDWINDOW | WS_VISIBLE | WS_TABSTOP | ES_READONLY | ES_AUTOHSCROLL, 150, 219, 153, 12, WS_EX_CLIENTEDGE
 +END
 +
 +
 +/////////////////////////////////////////////////////////////////////////////
 +//
 +// DESIGNINFO
 +//
 +
 +#ifdef APSTUDIO_INVOKED
 +GUIDELINES DESIGNINFO
 +BEGIN
 +    IDD_DIALOG1, DIALOG
 +    BEGIN
 +        LEFTMARGIN, 7
 +        RIGHTMARGIN, 302
 +        TOPMARGIN, 7
 +        BOTTOMMARGIN, 169
 +    END
 +END
 +#endif    // APSTUDIO_INVOKED
 +
 +#endif    // Ðóññêèé (Ðîññèÿ) resources
 +/////////////////////////////////////////////////////////////////////////////
 +
 +
 +
 +#ifndef APSTUDIO_INVOKED
 +/////////////////////////////////////////////////////////////////////////////
 +//
 +// Generated from the TEXTINCLUDE 3 resource.
 +//
 +
 +
 +/////////////////////////////////////////////////////////////////////////////
 +#endif    // not APSTUDIO_INVOKED
 +
 diff --git a/plugins/HwHotKeys/res/HwHotKeys_version.rc b/plugins/HwHotKeys/res/HwHotKeys_version.rc new file mode 100644 index 0000000000..e2a0e7b639 --- /dev/null +++ b/plugins/HwHotKeys/res/HwHotKeys_version.rc @@ -0,0 +1,38 @@ +
 +
 +#include "afxres.h"
 +#include "..\src\HwHotKeys_version.h"
 +
 +// https://msdn.microsoft.com/en-us/library/windows/desktop/aa381058%28v=vs.85%29.aspx
 +
 +VS_VERSION_INFO VERSIONINFO
 +FILEVERSION __FILEVERSION_STRING
 +PRODUCTVERSION __FILEVERSION_STRING
 +FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
 +#ifdef _DEBUG
 +FILEFLAGS VS_FF_DEBUG
 +#else
 +FILEFLAGS 0x0L
 +#endif
 +FILEOS VOS_NT
 +FILETYPE VFT_DLL
 +FILESUBTYPE VFT2_UNKNOWN
 +BEGIN
 +	BLOCK "StringFileInfo"
 +	BEGIN
 +		BLOCK "04090000"
 +		BEGIN
 +			VALUE "FileDescription", __DESCRIPTION_DLL
 +			VALUE "FileVersion", __VERSION_STRING_DOTS
 +			VALUE "InternalName", __PLUGIN_NAME
 +			VALUE "LegalCopyright", __COPYRIGHT
 +			VALUE "CompanyName", __AUTHORWEB
 +			VALUE "OriginalFilename", __FILENAME
 +			VALUE "ProductName", __PLUGIN_NAME
 +		END
 +	END
 +	BLOCK "VarFileInfo"
 +	BEGIN
 +		VALUE "Translation", 0x0409, 0
 +	END
 +END
 diff --git a/plugins/HwHotKeys/src/HwHotKeys.cpp b/plugins/HwHotKeys/src/HwHotKeys.cpp new file mode 100644 index 0000000000..a922fd80ba --- /dev/null +++ b/plugins/HwHotKeys/src/HwHotKeys.cpp @@ -0,0 +1,23 @@ +// HwHotKeys.cpp: îïðåäåëÿåò ýêñïîðòèðîâàííûå ôóíêöèè äëÿ ïðèëîæåíèÿ DLL.
 +//
 +
 +#include "stdafx.h"
 +#include "HwHotKey.h"
 +
 +
 +
 +// Ïðèìåð ýêñïîðòèðîâàííîé ïåðåìåííîé
 +HWHOTKEYS_API int nHwHotKeys=0;
 +
 +// Ïðèìåð ýêñïîðòèðîâàííîé ôóíêöèè.
 +HWHOTKEYS_API int fnHwHotKeys(void)
 +{
 +	return 42;
 +}
 +
 +// Êîíñòðóêòîð äëÿ ýêñïîðòèðîâàííîãî êëàññà.
 +// ñì. îïðåäåëåíèå êëàññà â HwHotKeys.h
 +CHwHotKeys::CHwHotKeys()
 +{
 +	return;
 +}
 diff --git a/plugins/HwHotKeys/src/HwHotKeys.h b/plugins/HwHotKeys/src/HwHotKeys.h new file mode 100644 index 0000000000..82b3a7bb61 --- /dev/null +++ b/plugins/HwHotKeys/src/HwHotKeys.h @@ -0,0 +1,87 @@ +/* ============================================================================
 +Hardware HotKeys plugin for Miranda NG.
 +Copyright © Eugene f2065, http://f2065.narod.ru, f2065 mail.ru, ICQ 35078112
 +
 +This program is free software; you can redistribute it and / or
 +modify it under the terms of the GNU General Public License
 +as published by the Free Software Foundation; either version 2
 +of the License, or(at your option) any later version.
 +
 +This program is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
 +GNU General Public License for more details.
 +
 +You should have received a copy of the GNU General Public License
 +along with this program; if not, write to the Free Software
 +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111 - 1307, USA.
 +============================================================================ */
 +
 +#include <SDKDDKVer.h>
 +#include <windows.h>
 +
 +#include <newpluginapi.h>
 +#include <m_langpack.h>
 +#include <m_database.h>
 +#include <m_options.h>
 +#include <m_clistint.h>
 +
 +#include <Strsafe.h>
 +
 +#include "HwHotKeys_resource.h"
 +#include "HwHotKeys_version.h"
 +
 +int initializeOptions(WPARAM, LPARAM);
 +INT_PTR CALLBACK OptDlgProc(HWND, UINT, WPARAM, LPARAM);
 +VOID HwHotKeys_PrintFullKeyname(DWORD);
 +BOOL HwHotKeys_CompareCurrentScancode(DWORD);
 +LRESULT CALLBACK key_hook(INT, WPARAM, LPARAM);
 +extern CLIST_INTERFACE *pcli;
 +
 +
 +extern HINSTANCE hInstance;
 +extern INT hLangpack;
 +extern HWND hDialogWnd; // ãëîáàëüíî èñïîëüçóåòñÿ äëÿ âûâîäà òóäà â ðåàëòàéìå ñêàíêîäîâ êëàâû, èç õóêà
 +extern HHOOK hHook;
 +
 +extern DWORD code_Close_tmp;
 +extern DWORD code_HideShow_tmp;
 +extern DWORD code_ReadMsg_tmp;
 +extern DWORD code_Close;
 +extern DWORD code_HideShow;
 +extern DWORD code_ReadMsg;
 +
 +extern DWORD key_code;
 +extern DWORD key_code_raw;
 +extern DWORD key_code_assign;
 +
 +
 +extern CHAR key_name_buffer[150];
 +extern const CHAR *key_tab[0x200];
 +
 +extern const CHAR *t_CL;
 +extern const CHAR *t_CR;
 +extern const CHAR *t_CC;
 +extern const CHAR *t_AL;
 +extern const CHAR *t_AR;
 +extern const CHAR *t_AA;
 +extern const CHAR *t_WL;
 +extern const CHAR *t_WR;
 +extern const CHAR *t_WW;
 +extern const CHAR *t_SL;
 +extern const CHAR *t_SR;
 +extern const CHAR *t_SS;
 +
 +// çíà÷åíèÿ ñâÿçàíû ñ áèòàìè â HwHotKeys_CompareCurrentScancode
 +enum : DWORD { key_flag_sr = 0x01000000 };
 +enum : DWORD { key_flag_cr = 0x02000000 };
 +enum : DWORD { key_flag_ar = 0x04000000 };
 +enum : DWORD { key_flag_wr = 0x08000000 };
 +enum : DWORD { key_flag_sl = 0x10000000 };
 +enum : DWORD { key_flag_cl = 0x20000000 };
 +enum : DWORD { key_flag_al = 0x40000000 };
 +enum : DWORD { key_flag_wl = 0x80000000 };
 +enum : DWORD { key_flag_ss = 0x00100000 };
 +enum : DWORD { key_flag_cc = 0x00200000 };
 +enum : DWORD { key_flag_aa = 0x00400000 };
 +enum : DWORD { key_flag_ww = 0x00800000 };
 diff --git a/plugins/HwHotKeys/src/HwHotKeys_Dlg.cpp b/plugins/HwHotKeys/src/HwHotKeys_Dlg.cpp new file mode 100644 index 0000000000..c159acc2d8 --- /dev/null +++ b/plugins/HwHotKeys/src/HwHotKeys_Dlg.cpp @@ -0,0 +1,108 @@ +/* ============================================================================
 +Hardware HotKeys plugin for Miranda NG.
 +Copyright © Eugene f2065, http://f2065.narod.ru, f2065 mail.ru, ICQ 35078112
 +
 +This program is free software; you can redistribute it and / or
 +modify it under the terms of the GNU General Public License
 +as published by the Free Software Foundation; either version 2
 +of the License, or(at your option) any later version.
 +
 +This program is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
 +GNU General Public License for more details.
 +
 +You should have received a copy of the GNU General Public License
 +along with this program; if not, write to the Free Software
 +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111 - 1307, USA.
 +============================================================================ */
 +
 +#include "HwHotKeys.h"
 +
 +INT_PTR CALLBACK OptDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
 +{
 +	switch (msg) {
 +	case WM_INITDIALOG:
 +
 +		hDialogWnd = hDlg;
 +
 +		TranslateDialogDefault(hDlg);
 +	
 +		code_Close_tmp = code_Close;
 +		HwHotKeys_PrintFullKeyname(code_Close_tmp);
 +		SetDlgItemTextA(hDlg, dlg_close_edit, key_name_buffer);
 +		code_HideShow_tmp = code_HideShow;
 +		HwHotKeys_PrintFullKeyname(code_HideShow_tmp);
 +		SetDlgItemTextA(hDlg, dlg_hide_edit, key_name_buffer);
 +		code_ReadMsg_tmp = code_ReadMsg;
 +		HwHotKeys_PrintFullKeyname(code_ReadMsg_tmp);
 +		SetDlgItemTextA(hDlg, dlg_read_edit, key_name_buffer);
 +
 +		break; //case WM_INITDIALOG
 +
 +	case WM_COMMAND:
 +		switch (wParam)
 +		{
 +		case dlg_close_set:
 +			code_Close_tmp = key_code_assign;
 +			HwHotKeys_PrintFullKeyname(key_code_assign);
 +			SetDlgItemTextA(hDialogWnd, dlg_close_edit, key_name_buffer);
 +			SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0); // ñîîáùàåò ñèñòåìå î òîì ÷òî áûëè èçìåíåíèÿ
 +			break;
 +		case dlg_close_clear:
 +			code_Close_tmp = 0;
 +			SetDlgItemTextA(hDialogWnd, dlg_close_edit, "");
 +			SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);
 +			break;
 +		case dlg_hide_set:
 +			code_HideShow_tmp = key_code_assign;
 +			HwHotKeys_PrintFullKeyname(key_code_assign);
 +			SetDlgItemTextA(hDialogWnd, dlg_hide_edit, key_name_buffer);
 +			SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);
 +			break;
 +		case dlg_hide_clear:
 +			code_HideShow_tmp = 0;
 +			SetDlgItemTextA(hDialogWnd, dlg_hide_edit, "");
 +			SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);
 +			break;
 +		case dlg_read_set:
 +			code_ReadMsg_tmp = key_code_assign;
 +			HwHotKeys_PrintFullKeyname(key_code_assign);
 +			SetDlgItemTextA(hDialogWnd, dlg_read_edit, key_name_buffer);
 +			SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);
 +			break;
 +		case dlg_read_clear:
 +			code_ReadMsg_tmp = 0;
 +			SetDlgItemTextA(hDialogWnd, dlg_read_edit, "");
 +			SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);
 +			break;
 +		}
 +		break; //case WM_COMMAND
 +
 +	case WM_NOTIFY:
 +		switch (((LPNMHDR)lParam)->idFrom)
 +		{
 +		case 0:
 +			switch (((LPNMHDR)lParam)->code)
 +			{
 +			case PSN_APPLY: // ñèñòåìà ïðîñèò ñîõðàíèòü íàñòðîéêè ïëàãèíà
 +				code_Close = code_Close_tmp;
 +				db_set_dw(0, __DbModName, "Close", code_Close_tmp);
 +				code_HideShow = code_HideShow_tmp;
 +				db_set_dw(0, __DbModName, "HideShow", code_HideShow_tmp);
 +				code_ReadMsg = code_ReadMsg_tmp;
 +				db_set_dw(0, __DbModName, "ReadMsg", code_ReadMsg_tmp);
 +				break; //case PSN_APPLY
 +			}
 +			break; //case 0
 +		}
 +		break; //case WM_NOTIFY
 +
 +	case WM_DESTROY:
 +		hDialogWnd = 0; // èñïîëüçóåòñÿ äëÿ âûâîäà òóäà â ðåàëòàéìå ñêàíêîäîâ êëàâû (ïîêà îòêðûòû íàñòðîéêè), 0 (ïðè çàêðûòèè äèàëîãà) áëîêèðóåò ýòî
 +		break;
 +	}
 +
 +	return 0;
 +}
 +
 diff --git a/plugins/HwHotKeys/src/HwHotKeys_DllMain.cpp b/plugins/HwHotKeys/src/HwHotKeys_DllMain.cpp new file mode 100644 index 0000000000..6a36f8e31e --- /dev/null +++ b/plugins/HwHotKeys/src/HwHotKeys_DllMain.cpp @@ -0,0 +1,150 @@ +/* ============================================================================
 +Hardware HotKeys plugin for Miranda NG.
 +Copyright © Eugene f2065, http://f2065.narod.ru, f2065 mail.ru, ICQ 35078112
 +
 +This program is free software; you can redistribute it and / or
 +modify it under the terms of the GNU General Public License
 +as published by the Free Software Foundation; either version 2
 +of the License, or(at your option) any later version.
 +
 +This program is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
 +GNU General Public License for more details.
 +
 +You should have received a copy of the GNU General Public License
 +along with this program; if not, write to the Free Software
 +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111 - 1307, USA.
 +============================================================================ */
 +
 +
 +
 +#include "HwHotKeys.h"
 +
 +HINSTANCE hInstance;
 +int hLangpack;
 +HWND hDialogWnd = 0; // õýíäë îêíà íàñòðîåê, îí ãëîáàëüíî èñïîëüçóåòñÿ äëÿ âûâîäà òóäà â ðåàëòàéìå ñêàíêîäîâ êëàâû èç õóêà
 +HHOOK hHook;
 +CLIST_INTERFACE *pcli;
 +
 +// òàì õðàíÿòñÿ íàñòðîéêè - ñêàíêîäû êíîïîê äëÿ çàêðûòèÿ/ïîêàçà/÷òåíèÿ, íà êîòîðûå äîëæíû ðåàãèðîâàòü ñîîòâåòñòâóþùèå äåéñòâèÿ
 +DWORD code_Close = 0;
 +DWORD code_HideShow = 0;
 +DWORD code_ReadMsg = 0;
 +// â _tmp êîïèðóþòñÿ íàñòðîéêè íà âðåìÿ äèàëîãà íàñòðîåê
 +DWORD code_Close_tmp = 0;
 +DWORD code_HideShow_tmp = 0;
 +DWORD code_ReadMsg_tmp = 0;
 +// ôîðìàò ñêàíêîäîâ òóò òàêîé:
 +// ìëàäøèå 0...7 áèòû - ýòî àïïàðàòíûé ñêàíêîä (êàê îí ïðèõîäèò â KbdLLHookStruct.scanCode&0xFF)
 +// 8 áèò - ýòî êàê áû ÷àñòü ñêàíêîäà, ôëàã LLKHF_EXTENDED ((LOBYTE(KbdLLHookStruct.flags)&1) - ÷àñòü êíîïîê ñ ýòèì ôëàãîì 
 +// (àâòîðàì 101-êíîïî÷íîé êëàâû íå õâàòèëî 255 ñêàíêîäîâ, ò.ê. òàì ìíîãî ñòàðûõ êíîïîê êîòîðûå óæå äàâíî âûìåðëè òèïà F13-F20).
 +// èòàê, ïëàãèí îïåðèðóåò 9-áèòíûìè ñêàíêîäàìè (èìåíà êíîïîê âñåõ ýòèõ ñêàíêîäîâ ïðîïèñàíû â òàáëèöå *key_tab[0x200]).
 +// áèòû 9-19 - íå èñïîëüçóþòñÿ.
 +// áèòû 20-31 - ýòî ôëàãè ðåãèñòðîâ, Shift/Ctrl/Alt/Win. Íà 4 êíîïêè - 12 áèòîâ. Ïîòîìó ÷òî êàæäàÿ êíîïêà 3 èìååò áèòà - ëåâàÿ, ïðàâàÿ, èëè ëþáàÿ.
 +// áèòîâûå ìàñêè ðåãèñòðîâ îïåðåäåëåíû â key_flag_sr è ñîñåäíèõ èìåíàõ
 +
 +// ïëàãèí îïåðèðóåò 10 - áèòíûìè "ñêàíêîäàìè" ñîáñòâåííîãî ôîðìàòà.
 +// ìëàäøèå 0...7 áèòû - ýòî îáû÷íî àïïàðàòíûé ñêàíêîä (êàê îí ïðèõîäèò â KbdLLHookStruct.scanCode&0xFF)
 +// 8 áèò - ýòî êàê áû ÷àñòü ñêàíêîäà, ôëàã LLKHF_EXTENDED ((LOBYTE(KbdLLHookStruct.flags)&1) - ÷àñòü êíîïîê ñ ýòèì ôëàãîì 
 +// (àâòîðàì 101-êíîïî÷íîé êëàâû íå õâàòèëî 255 ñêàíêîäîâ, ò.ê. òàì ìíîãî ñòàðûõ êíîïîê êîòîðûå óæå äàâíî âûìåðëè òèïà F13-F20).
 +// 9 áèò - ýòî çíà÷èò ÷òî â áèòàõ 0...7 íå àïïàðàòíûé ñêàíêîä, à VK-êîä (KbdLLHookStruct.vkCode), è 8 áèò ïðè ýòîì âñåãäà 0.
 +// ñäåëàíî ýòî ïîòîìó ÷òî íåêîòîðûå USB-êëàâèàòóðû íå âûäàþò â õóê àïïàðàòíûå ñêàíäîäû, è åñëè òàì 0 - òî áóäåò èñïîëüçîâàí VK-êîä.
 +// (èìåíà êíîïîê âñåõ ýòèõ ñêàíêîäîâ ïðîïèñàíû â òàáëèöå *key_tab[0x300]).
 +// áèòû 10-19 - íå èñïîëüçóþòñÿ.
 +// áèòû 20-31 - ýòî ôëàãè ðåãèñòðîâ, Shift/Ctrl/Alt/Win. Íà 4 êíîïêè - 12 áèòîâ. Ïîòîìó ÷òî êàæäàÿ êíîïêà 3 èìååò áèòà - ëåâàÿ, ïðàâàÿ, èëè ëþáàÿ.
 +// áèòîâûå ìàñêè ðåãèñòðîâ îïåðåäåëåíû â key_flag_sr è ñîñåäíèõ èìåíàõ
 +
 +
 +
 +
 +DWORD key_code = 0; // òàì ïîñòîÿííî îáíîâëÿåòñÿ ñêàíêîä òåêóùåé íàæàòîé êîìáèíàöèè
 +DWORD key_code_raw = 0;
 +DWORD key_code_assign = 0;  // âî âðåìÿ íàñòðîåê òàì õðàíèòñÿ ñêàíêîä ïîñëåäíåé íàæàòîé êîìáèíàöèè, êîòîðûé ìîæíî íàçíà÷èòü äëÿ äåéñòâèÿ.
 +
 +CHAR key_name_buffer[150]; // áóôåð êóäà ïå÷àòàåòñÿ èìÿ êíîïêè â íàñòðîéêàõ. ANSI. 
 +// Ñàìàÿ äëèííàÿ â òåîðèè ñòðîêà - «L_Shift + L_Ctrl + L_Alt + L_Win + R_Shift + R_Ctrl + R_Alt + R_Win + MSO_Print, HP_TouchPadOff» - ìåíåå 100 áóêâ.
 +
 +// ============================================================================
 +
 +BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
 +{
 +	hInstance = hModule;
 +	return TRUE;
 +}
 +
 +// ============================================================================
 +
 +PLUGININFOEX PluginInfoEx = {
 +	sizeof(PLUGININFOEX),
 +	__PLUGIN_NAME,
 +	PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM),
 +	__DESCRIPTION_MIR,
 +	__AUTHOR,
 +	__AUTHOREMAIL,
 +	__COPYRIGHT,
 +	__AUTHORWEB,
 +	UNICODE_AWARE,
 +	// {315B3800-8258-44C4-B60E-58C50B9303B6} - GUID äëÿ ïëàãèíà HwHotKeys
 +	{ 0x315b3800, 0x8258, 0x44c4, { 0xb6, 0xe, 0x58, 0xc5, 0xb, 0x93, 0x3, 0xb6 } }
 +};
 +
 +extern "C" __declspec(dllexport) PLUGININFOEX * MirandaPluginInfoEx(DWORD)
 +{
 +	return &PluginInfoEx;
 +}
 +
 +// ============================================================================
 +
 +extern "C" __declspec(dllexport) int Load(void)
 +{
 +	// çàãðóæàåì (èç ÁÄ) íàñòðîéêè ïëàãèíà
 +	code_Close = db_get_dw(0, __DbModName, "Close", 0);
 +	code_HideShow = db_get_dw(0, __DbModName, "HideShow", 0);
 +	code_ReadMsg = db_get_dw(0, __DbModName, "ReadMsg", 0);
 +
 +	// óñòàíîâêà êîäà ëîêàëèçàöèè - ìàêðîñ mir_getLP(PlgInfoEx)
 +	mir_getLP(&PluginInfoEx);
 +
 +	// Èíòåðôåéñ êîíòàêòëèñòà - ìàêðîñ çàïîëíÿåò CLIST_INTERFACE *pcli;
 +	mir_getCLI();
 +
 +	// ðåãèñòðàöèÿ äèàëîãà îïöèé
 +	HookEvent(ME_OPT_INITIALISE, initializeOptions);
 +
 +	// óñòàíîâêà õóêà äëÿ íèçêîóðîâíåâîé îáðàáîòêè õîòêååâ
 +	hHook = SetWindowsHookExA(WH_KEYBOARD_LL, key_hook, hInstance, 0);
 +
 +//	StringCbPrintfA(key_name_buffer, 100, "hHook = 0x%x, Err = %u", hHook, GetLastError);
 +//	MessageBoxA(0, key_name_buffer, 0, 0);
 +
 +	return 0;
 +}
 +
 +// ====================================
 +
 +int initializeOptions(WPARAM wParam, LPARAM)
 +{
 +	OPTIONSDIALOGPAGE OptDlgPg = { sizeof(OptDlgPg) };
 +	OptDlgPg.position = 100000000;
 +	OptDlgPg.hInstance = hInstance;
 +	OptDlgPg.flags = ODPF_BOLDGROUPS | ODPF_TCHAR;
 +	OptDlgPg.pszTemplate = MAKEINTRESOURCEA(dlg_options);
 +	OptDlgPg.ptszGroup = LPGENT("Customize");
 +	OptDlgPg.ptszTitle = LPGENT(__PLUGIN_NAME);
 +	OptDlgPg.pfnDlgProc = OptDlgProc;
 +	OptDlgPg.hLangpack = hLangpack;
 +	Options_AddPage(wParam, &OptDlgPg);
 +	return 0;
 +}
 +
 +// ============================================================================
 +
 +extern "C" __declspec(dllexport) int Unload(void)
 +{
 +	UnhookWindowsHookEx(hHook);
 +	return 0;
 +}
 +
 +// ============================================================================
 +
 diff --git a/plugins/HwHotKeys/src/HwHotKeys_KbdHook.cpp b/plugins/HwHotKeys/src/HwHotKeys_KbdHook.cpp new file mode 100644 index 0000000000..ac80b69036 --- /dev/null +++ b/plugins/HwHotKeys/src/HwHotKeys_KbdHook.cpp @@ -0,0 +1,133 @@ +/* ============================================================================
 +Hardware HotKeys plugin for Miranda NG.
 +Copyright © Eugene f2065, http://f2065.narod.ru, f2065 mail.ru, ICQ 35078112
 +
 +This program is free software; you can redistribute it and / or
 +modify it under the terms of the GNU General Public License
 +as published by the Free Software Foundation; either version 2
 +of the License, or(at your option) any later version.
 +
 +This program is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
 +GNU General Public License for more details.
 +
 +You should have received a copy of the GNU General Public License
 +along with this program; if not, write to the Free Software
 +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111 - 1307, USA.
 +============================================================================ */
 +
 +#include "HwHotKeys.h"
 +
 +LRESULT CALLBACK key_hook(int nCode, WPARAM wParam, LPARAM lParam)  // https://msdn.microsoft.com/en-us/library/windows/desktop/ms644985%28v=vs.85%29.aspx
 +{
 +		KBDLLHOOKSTRUCT *pKbdLLHookStruct = (KBDLLHOOKSTRUCT *)lParam;
 +		if (nCode >= 0)
 +		{
 +			if (wParam == WM_KEYUP || wParam == WM_SYSKEYUP) // ïðè îòïóñêàíèè ëþáîé êíîïêè - ñáðàñûâàåì âñþ íàêîïëåííóþ êîìáèíàöèþ
 +			{
 +				key_code = 0;
 +			}
 +			else if (wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN)
 +			{
 +				if (!(pKbdLLHookStruct->scanCode & 0xFFFFFF00) && (pKbdLLHookStruct->scanCode & 0xFF)) // && !(pKbdLLHookStruct->flags & LLKHF_INJECTED)) 
 +					// 0xFFFFFF00 ôèëüòð äëÿ ñòðàííûõ äâîéíûõ ñêàíêîäîâ íàïðèìåð ïåðåä L_Alt/AltGr, 
 +					// 0xFF ôèëüòð äëÿ íóëåâûõ ñêàíêîäîâ(ïðèõîäÿò ïðè âñÿêîé òàì ýìóëÿöèè íàæàòèé è ò.ï.)
 +					// LLKHF_INJECTED ôèëüòð äëÿ ýìóëèðóåìûõ íàæàòèé, íî åñòü ïðîáëåìà ñ íåêîòîðûìè êëàâàìè
 +				{
 +					// ñòðîèì êîìïëåêñíûé êîä(ñêàíêîä + äîï.ôëàã LLKHF_EXTENDED), îò 0 äî 1FF
 +					key_code_raw = (LOBYTE(pKbdLLHookStruct->scanCode) | ((LOBYTE(pKbdLLHookStruct->flags)&1) << 8));
 +
 +					if (hDialogWnd) // åñëè äèàëîã íàñòðîåê îòêðûò - âûâîäèì â íåãî íàæèìàåìûå êíîïîêè
 +					{
 +						StringCbPrintfA(key_name_buffer, sizeof(key_name_buffer), "%03X %s", key_code_raw, key_tab[(key_code_raw & 0x1FF)]);
 +						SetDlgItemTextA(hDialogWnd, dlg_scancode_edit, key_name_buffer);
 +					}
 +
 +					switch (key_code_raw) // ïðîâåðÿåì êíîïêè ìîäèôèêàòîðîâ
 +						{
 +						case 0x01D: // L_Ctrl
 +							key_code |= key_flag_cl;
 +							break;   // ïîñëå ìîäèôèêàòîðîâ - íè÷åãî íå äåëàåì, âûõîä èç õóêà.
 +						case 0x11D: // R_Ctrl
 +							key_code |= key_flag_cr;
 +							break;
 +						case 0x038: // L_Alt
 +							key_code |= key_flag_al;
 +							break;
 +						case 0x138: // R_Alt
 +							key_code |= key_flag_ar;
 +							break;
 +						case 0x15B: // L_Win
 +							key_code |= key_flag_wl;
 +							break;
 +						case 0x15C: // R_Win
 +							key_code |= key_flag_wr;
 +							break;
 +						case 0x02A: // L_Shift
 +							key_code |= key_flag_sl;
 +							break;
 +						case 0x036: // R_Shift
 +							key_code |= key_flag_sr;
 +							break;
 +						case 0x12A: // L_Shift_fake
 +							key_code |= key_flag_sl;
 +							break;
 +						case 0x136: // R_Shift_fake
 +							key_code |= key_flag_sr;
 +							break; 
 +						default:  // åñëè ýòî íå êíîïêà ìîäèôèêàòîðà - òî äàëüíåéøàÿ îáðàáîòêà
 +							key_code = (LOWORD(key_code_raw)) | (key_code & 0xFFFF0000); // â ñòàðøåé ïîëîâèíå òàì ëåæàò áèòû ìîäèôèêàòîðîâ - èõ îñòàâëÿåì (îíè òàì ìîãóò áûòü îò ïðåäûäóùåãî ðàçà)
 +							if (hDialogWnd) // åñëè äèàëîã íàñòðîåê îòêðûò - âûâîäèì â íåãî êîìïëåêñíóþ êîìáèíàöèþ (òèïà Shift+Key), êîòîðóþ ïîòîì ìîæíî íàçíà÷èòü;
 +							{
 +								if (IsDlgButtonChecked(hDialogWnd, dlg_combine)) // ëåâûå/ïðàâûå ìîäèôèêàòîðû îáúåäèíÿòü â îäèí?
 +								{
 +									DWORD tmp1, tmp2;
 +									tmp1 = ((key_code >> 4) | (key_code >> 8)) & 0x00F00000;
 +									tmp2 = LOWORD(key_code) | tmp1;
 +									tmp2 &= 0x00F001FF;
 +									key_code_assign = tmp2;
 +								}
 +								else
 +								{
 +									key_code_assign = key_code;
 +								}
 +								HwHotKeys_PrintFullKeyname(key_code_assign);
 +								SetDlgItemTextA(hDialogWnd, dlg_keyname_edit, key_name_buffer);
 +							}
 +							else // õîòêåé âûïîëíÿþò äåéñòâèÿ òîëüêî åñëè çàêðûò äèàëîã íàñòðîåê (÷òîáû íå ìåøàë íàñòðàèâàòü)
 +							{
 +								if (HwHotKeys_CompareCurrentScancode(code_Close)) // õîòêåé ïîëíîãî çàêðûòèÿ Miranda
 +								{
 +									// Beep(300, 200);
 +									CallService("CloseAction", 0, 0);
 +									return 1;
 +								}
 +								else if (HwHotKeys_CompareCurrentScancode(code_HideShow)) // õîòêåé ñâîðà÷èâàíèÿ/ðàçâîðà÷èâàíèÿ ãëàâíîãî îêíà Miranda
 +								{
 +									// Beep(700, 200);
 +									pcli->pfnShowHide(0, 0); // åñòü âàðèàíòû
 +									return 1;
 +								}
 +								else if (HwHotKeys_CompareCurrentScancode(code_ReadMsg)) // õîòêåé ÷òåíèÿ ñîîáùåíèÿ
 +								{
 +									// Beep(1500, 200);
 +									if (pcli->pfnEventsProcessTrayDoubleClick(0) != 0) // êëèê ïî òðåþ äëÿ ñòàíäàðòíîãî îòêðûòèÿ ñîîáùåíèÿ
 +									{ // èíà÷å - îêíî ÷àòà óæå îòêðûòî è íàäî åãî âûòàùèòü íàâåðõ...
 +										SetForegroundWindow(pcli->hwndContactList);
 +										SetFocus(pcli->hwndContactList);
 +										// õîòÿ âñ¸ ðàâíî ýòî íå î÷åíü ðàáîòàåò â íîâîé âèíäå
 +										// íàäî http://www.rsdn.ru/article/qna/ui/wndsetfg.xml
 +										// íî ïîêà íåçíàþ ãäå òóò âçÿòü õýíäë îêíà ÷àòà(ïðè÷¸ì èìåííî äëÿ
 +										// âûáðàííîãî êîíòàêòà, èõ æå íåñêîëüêî ìîæåò áûòü åñëè ïðîñòîé srmm)
 +										// ó ìèðàíäû â hkRead òàêèå æå ïðîáëåìû
 +									}
 +									return 1; // âîçâðàò 1 çàïðåùàåò äàëüíåéøóþ ðàáîòó êíîïêè, ò.å. êíîïêà ïîñëå íàøåãî ïëàãèíà íèêîìó áîëåå íå äîñòàíåòñÿ
 +								}
 +							}
 +						}
 +				}
 +			}
 +		}
 +	return CallNextHookEx(hHook, nCode, wParam, lParam);
 +}
 diff --git a/plugins/HwHotKeys/src/HwHotKeys_KeyName.cpp b/plugins/HwHotKeys/src/HwHotKeys_KeyName.cpp new file mode 100644 index 0000000000..a372bca19e --- /dev/null +++ b/plugins/HwHotKeys/src/HwHotKeys_KeyName.cpp @@ -0,0 +1,243 @@ +/* ============================================================================
 +Hardware HotKeys plugin for Miranda NG.
 +Copyright © Eugene f2065, http://f2065.narod.ru, f2065 mail.ru, ICQ 35078112
 +
 +This program is free software; you can redistribute it and / or
 +modify it under the terms of the GNU General Public License
 +as published by the Free Software Foundation; either version 2
 +of the License, or(at your option) any later version.
 +
 +This program is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
 +GNU General Public License for more details.
 +
 +You should have received a copy of the GNU General Public License
 +along with this program; if not, write to the Free Software
 +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111 - 1307, USA.
 +============================================================================ */
 +
 +#include "HwHotKeys.h"
 +
 +// òóò îïèñàíû èçâåñòíûå èìåíà êíîïîê ïî àïïàðàòíûì ñêàíêîäàì (KbdLLHookStruct.scanCode & 0xFF) è ((LOBYTE(KbdLLHookStruct.flags)&1) 
 +// è ïî VK-êîäàì (KbdLLHookStruct.vkCode)
 +
 +// ïðè îáíàðóæåíèè íîâûõ êíîïîê (íà ìóëüòèìåäèéíûõ êëàâèàòóðàõ) ïðîñüáà ñîîáùàòü îá ýòîì àâòîðó!
 +
 +
 +
 +// èìåíà äëÿ KbdLLHookStruct.scanCode
 +const CHAR *k000 = "Undefined!";
 +const CHAR *k001 = "Esc";
 +const CHAR *k002 = "1";
 +const CHAR *k003 = "2";
 +const CHAR *k004 = "3";
 +const CHAR *k005 = "4";
 +const CHAR *k006 = "5";
 +const CHAR *k007 = "6";
 +const CHAR *k008 = "7";
 +const CHAR *k009 = "8";
 +const CHAR *k00A = "9";
 +const CHAR *k00B = "0";
 +const CHAR *k00C = "-_";
 +const CHAR *k00D = "=+";
 +const CHAR *k00E = "Backspace";
 +const CHAR *k00F = "Tab";
 +const CHAR *k010 = "Q";
 +const CHAR *k011 = "W";
 +const CHAR *k012 = "E";
 +const CHAR *k013 = "R";
 +const CHAR *k014 = "T";
 +const CHAR *k015 = "Y";
 +const CHAR *k016 = "U";
 +const CHAR *k017 = "I";
 +const CHAR *k018 = "O";
 +const CHAR *k019 = "P";
 +const CHAR *k01A = "[{";
 +const CHAR *k01B = "]}";
 +const CHAR *k01C = "Enter";
 +const CHAR *k01D = "L_Ctrl";
 +const CHAR *k01E = "A";
 +const CHAR *k01F = "S";
 +const CHAR *k020 = "D";
 +const CHAR *k021 = "F";
 +const CHAR *k022 = "G";
 +const CHAR *k023 = "H";
 +const CHAR *k024 = "J";
 +const CHAR *k025 = "K";
 +const CHAR *k026 = "L";
 +const CHAR *k027 = ";:";
 +const CHAR *k028 = "\'\""; // '" 
 +const CHAR *k029 = "`~";
 +const CHAR *k02A = "L_Shift";
 +const CHAR *k02B = "\\|";
 +const CHAR *k02C = "Z";
 +const CHAR *k02D = "X";
 +const CHAR *k02E = "C";
 +const CHAR *k02F = "V";
 +const CHAR *k030 = "B";
 +const CHAR *k031 = "N";
 +const CHAR *k032 = "M";
 +const CHAR *k033 = ",<";
 +const CHAR *k034 = ".>";
 +const CHAR *k035 = "/?";
 +const CHAR *k036 = "R_Shift";
 +const CHAR *k037 = "Keypad_*"; // 37 (Keypad - *) or(*/ PrtScn) on a 83 / 84 - key keyboard
 +const CHAR *k038 = "L_Alt";
 +const CHAR *k039 = "Space";
 +const CHAR *k03A = "Caps_Lock";
 +const CHAR *k03B = "F1";
 +const CHAR *k03C = "F2";
 +const CHAR *k03D = "F3";
 +const CHAR *k03E = "F4";
 +const CHAR *k03F = "F5";
 +const CHAR *k040 = "F6";
 +const CHAR *k041 = "F7";
 +const CHAR *k042 = "F8";
 +const CHAR *k043 = "F9";
 +const CHAR *k044 = "F10";
 +const CHAR *k045 = "Pause";
 +const CHAR *k046 = "Scroll_Lock";
 +const CHAR *k047 = "Keypad_7_Home";
 +const CHAR *k048 = "Keypad_8_Up";
 +const CHAR *k049 = "Keypad_9_PageUp";
 +const CHAR *k04A = "Keypad_-";
 +const CHAR *k04B = "Keypad_4_Left";
 +const CHAR *k04C = "Keypad_5";
 +const CHAR *k04D = "Keypad_6_Right";
 +const CHAR *k04E = "Keypad_+";
 +const CHAR *k04F = "Keypad_1_End";
 +const CHAR *k050 = "Keypad_2_Down";
 +const CHAR *k051 = "Keypad_3_PageDown";
 +const CHAR *k052 = "Keypad_0_Insert";
 +const CHAR *k053 = "Keypad_._Delete";
 +const CHAR *k054 = "Alt_SysRq"; // Alt + PrtScr
 +
 +const CHAR *k057 = "F11";
 +const CHAR *k058 = "F12";
 +
 +const CHAR *k105 = "Messenger";
 +
 +const CHAR *k107 = "MSO_Redo";
 +const CHAR *k108 = "MSO_Undo";
 +const CHAR *k10A = "HP_Lock";
 +const CHAR *k10E = "HP_DVD";
 +const CHAR *k110 = "Media_PrevTrack";
 +const CHAR *k116 = "LogOff";
 +const CHAR *k119 = "Media_NextTrack";
 +const CHAR *k11C = "Keypad_Enter";
 +const CHAR *k11D = "R_Ctrl";
 +const CHAR *k120 = "Volume_Mute";
 +const CHAR *k121 = "Calculator";
 +const CHAR *k122 = "Media_Play/Pause";
 +const CHAR *k123 = "MSO_Spell";
 +const CHAR *k124 = "Media_Stop";
 +const CHAR *k12A = "L_Shift_fake";
 +const CHAR *k12E = "Volume_Down";
 +const CHAR *k130 = "Volume_Up";
 +const CHAR *k131 = "HP_Help";
 +const CHAR *k132 = "Browser_Start";
 +const CHAR *k135 = "Keypad_/";
 +const CHAR *k136 = "R_Shift_fake";
 +const CHAR *k137 = "PrintScreen"; // ? ? ? no - ext ?
 +const CHAR *k138 = "R_Alt";
 +
 +
 +const CHAR *k13B = "MSO_Help";
 +const CHAR *k13C = "MyMusic";
 +const CHAR *k13E = "MSO_New";
 +const CHAR *k13F = "MSO_Open";
 +const CHAR *k140 = "MSO_Close";
 +const CHAR *k141 = "MSO_Reply";
 +const CHAR *k142 = "MSO_Fwd";
 +const CHAR *k143 = "MSO_Send";
 +
 +const CHAR *k145 = "Num_Lock";
 +const CHAR *k146 = "Ctrl_Break"; // Ctrl + Pause
 +const CHAR *k147 = "Home"; // grey
 +const CHAR *k148 = "Up"; // grey
 +const CHAR *k149 = "PageUp"; // grey
 +const CHAR *k14B = "Left"; // grey
 +const CHAR *k14C = "MyDocuments";
 +const CHAR *k14D = "Right"; // grey
 +const CHAR *k14F = "End"; // grey
 +const CHAR *k150 = "Down"; // grey
 +const CHAR *k151 = "PageDown"; // grey
 +const CHAR *k152 = "Insert"; // grey
 +const CHAR *k153 = "Delete"; // grey
 +
 +const CHAR *k157 = "MSO_Save";
 +const CHAR *k158 = "MSO_Print,HP_TouchPadOff";
 +const CHAR *k159 = "HP_TouchPadOn";
 +
 +const CHAR *k15B = "L_Win";
 +const CHAR *k15C = "R_Win";
 +const CHAR *k15D = "Context_Menu";
 +const CHAR *k15E = "Power";
 +const CHAR *k15F = "Sleep";
 +const CHAR *k163 = "Wake";
 +const CHAR *k164 = "MyPictures";
 +const CHAR *k16C = "Mail";
 +const CHAR *k16D = "Media_Select";
 +
 +const CHAR *k165 = "Browser_Search";
 +const CHAR *k166 = "Browser_Favorites";
 +const CHAR *k167 = "Browser_Refresh";
 +const CHAR *k168 = "Browser_Stop";
 +const CHAR *k169 = "Browser_Forward";
 +const CHAR *k16A = "Browser_Back";
 +
 +
 +// êíîïêè ðåãèñòðîâ (Shift,Ctrl,Alt,Win)
 +const CHAR *t_CL = k01D;
 +const CHAR *t_CR = k11D;
 +const CHAR *t_CC = k01D + 2;
 +const CHAR *t_AL = k038;
 +const CHAR *t_AR = k138;
 +const CHAR *t_AA = k038 + 2;
 +const CHAR *t_WL = k15B;
 +const CHAR *t_WR = k15C;
 +const CHAR *t_WW = k038 + 2;
 +const CHAR *t_SL = k02A;
 +const CHAR *t_SR = k036;
 +const CHAR *t_SS = k02A + 2;
 +
 +
 +
 +const CHAR *key_tab[0x200]
 +{
 +	k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k00D, k00E, k00F, // 000 - ïðîñòûå KbdLLHookStruct.scanCode
 +	k010, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C, k01D, k01E, k01F, // 010
 +	k020, k021, k022, k023, k024, k025, k026, k027, k028, k029, k02A, k02B, k02C, k02D, k02E, k02F, // 020
 +	k030, k031, k032, k033, k034, k035, k036, k037, k038, k039, k03A, k03B, k03C, k03D, k03E, k03F, // 030
 +	k040, k041, k042, k043, k044, k045, k046, k047, k048, k049, k04A, k04B, k04C, k04D, k04E, k04F, // 040
 +	k050, k051, k052, k053, k054, k000, k000, k057, k058, k000, k000, k000, k000, k000, k000, k000, // 050
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 060
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 070
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 080
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 090
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 0A0
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 0B0
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 0C0
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 0D0
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 0E0
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 0F0
 +  //  0     1     2     3     4     5     6     7     8     9     A     B     C     D     E     F
 +	k000, k000, k000, k000, k000, k105, k000, k107, k108, k000, k10A, k000, k000, k000, k10E, k000, // 100 - LLKHF_EXTENDED KbdLLHookStruct.scanCode
 +	k110, k000, k000, k000, k000, k000, k116, k000, k000, k119, k000, k000, k11C, k11D, k000, k000, // 110
 +	k120, k121, k122, k123, k124, k000, k000, k000, k000, k000, k12A, k000, k000, k000, k12E, k000, // 120
 +	k130, k131, k132, k000, k000, k135, k136, k137, k138, k000, k000, k13B, k13C, k000, k13E, k13F, // 130
 +	k140, k141, k142, k143, k000, k145, k146, k147, k148, k149, k000, k14B, k14C, k14D, k000, k14F, // 140
 +	k150, k151, k152, k153, k000, k000, k000, k157, k158, k159, k000, k15B, k15C, k15D, k15E, k15F, // 150
 +	k000, k000, k000, k163, k164, k165, k166, k167, k168, k169, k16A, k000, k16C, k16D, k000, k000, // 160
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 170
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 180
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 190
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 1A0
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 1B0
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 1C0
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 1D0
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 1E0
 +	k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, k000, // 1F0
 +  //  0     1     2     3     4     5     6     7     8     9     A     B     C     D     E     F
 +};
 diff --git a/plugins/HwHotKeys/src/HwHotKeys_Util.cpp b/plugins/HwHotKeys/src/HwHotKeys_Util.cpp new file mode 100644 index 0000000000..cc22aeae7c --- /dev/null +++ b/plugins/HwHotKeys/src/HwHotKeys_Util.cpp @@ -0,0 +1,139 @@ +/* ============================================================================
 +Hardware HotKeys plugin for Miranda NG.
 +Copyright © Eugene f2065, http://f2065.narod.ru, f2065 mail.ru, ICQ 35078112
 + 
 +This program is free software; you can redistribute it and / or
 +modify it under the terms of the GNU General Public License
 +as published by the Free Software Foundation; either version 2
 +of the License, or(at your option) any later version.
 +
 +This program is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
 +GNU General Public License for more details.
 +
 +You should have received a copy of the GNU General Public License
 +along with this program; if not, write to the Free Software
 +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111 - 1307, USA.
 +============================================================================ */
 +
 +#include "HwHotKeys.h"
 +
 +
 +
 +// ñðàâíèâàåò òåêóùèé íàæàòûé ñêàíêîä ñ óêàçàííûì
 +BOOL HwHotKeys_CompareCurrentScancode(DWORD scancode)
 +{
 +	if (key_code == scancode) // key_code - òåêóùèé íàæàòûé íà êëàâèàòóðå ñêàíêîä.
 +	{
 +		return true; // ñêàíêîä íàïðÿìóþ ñîâïàë - TRUE.
 +	}
 +	if (!(scancode & 0x00F00000)) // ïðîâåðÿåì íåò ëè â ñêàíêîäå çàïðîñà íà ëþáîé èç ëåâîãî/ïðàâîãî ðåãèñòðà.
 +	{
 +		return false;
 +	}
 +	DWORD tmp1, tmp2; // áèòîâûå ìàñêè: 0xF0000000 - ëåâûå êíîïêè Sft/Ctr/Alt/Win, 0x0F000000 - ïðàâûå êíîïêè, 0x00F00000 - ëþáûå êíîïêè Sft/Ctr/Alt/Win
 +	tmp1 = key_code >> 8;    // ñäâèãàåì áèòû ëåâûõ è ïðàâûõ êíîïîê.
 +	tmp2 = key_code >> 4;
 +	tmp1 |= tmp2;
 +	tmp1 &= 0x00F00000;
 +	tmp2 = (key_code | tmp1) & 0x00FFFFFF;
 +	if (tmp2 == scancode)
 +	{
 +		return true;
 +	}
 +	return false;
 +}
 +
 +
 +
 +// ïå÷àòàåò â áóôåð key_name_buffer òåêñòîâîå îïèñàíèå íàæàòîé êîìáèíàöèè êíîïîê
 +// Êîäèðîâêà ANSI (äëÿ ýêîíîìèè ìåñòà, âñ¸ ðàâíî íàçâàíèÿ êëàâèø àíãëèéñêèå)
 +VOID HwHotKeys_PrintFullKeyname(DWORD scancode)
 +{
 +	key_name_buffer[0] = 0;
 +	if (!scancode) // åñëè íóëåâîé ñêàíêîä - òî ïóñòóþ ñòðîêó äåëàåì.
 +	{
 +		return;
 +	}
 +
 +	if (scancode & key_flag_sl) // L_Shift
 +	{
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), t_SL);
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), " + ");
 +	}
 +	if (scancode & key_flag_sr) // R_Shift
 +	{
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), t_SR);
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), " + ");
 +	}
 +	if (scancode & key_flag_ss) // Shift
 +	{
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), t_SS);
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), " + ");
 +	}
 +
 +	if (scancode & key_flag_cl) // L_Ctrl
 +	{
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), t_CL);
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), " + ");
 +	}
 +	if (scancode & key_flag_cr) // R_Ctrl
 +	{
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), t_CR);
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), " + ");
 +	}
 +	if (scancode & key_flag_cc) // Ctrl
 +	{
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), t_CC);
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), " + ");
 +	}
 +
 +	if (scancode & key_flag_al) // L_Alt
 +	{
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), t_AL);
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), " + ");
 +	}
 +	if (scancode & key_flag_ar) // R_Alt
 +	{
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), t_AR);
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), " + ");
 +	}
 +	if (scancode & key_flag_aa) // Alt
 +	{
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), t_AA);
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), " + ");
 +	}
 +
 +	if (scancode & key_flag_wl) // L_Win
 +	{
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), t_WL);
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), " + ");
 +	}
 +	if (scancode & key_flag_wr) // R_Win
 +	{
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), t_WR);
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), " + ");
 +	}
 +	if (scancode & key_flag_ww) // Win
 +	{
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), t_WW);
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), " + ");
 +	}
 +
 +	if ((scancode & 0x1FF) < sizeof(key_tab)) // çàùèòà îò îøèáî÷íûõ äàííûõ - ÷òîáû íå âûéòè èç òàáëèöû èì¸í.
 +	{
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), key_tab[(scancode & 0x1FF)]);
 +	}
 +	else
 +	{
 +		StringCbCatA(key_name_buffer, sizeof(key_name_buffer), "out of range");
 +	}
 +
 +	INT_PTR tmp1 = mir_strlen(key_name_buffer); // äîïå÷àòûâàåì â êîíåöå ñòðîêè ñêàíêîä - äëÿ óäîáñòâà ðàáîòû ñ ïîêà åù¸ íå èçâåñòíûìè (áåçèìÿííûìè) êíîïêàìè
 +	StringCbPrintfA(key_name_buffer + tmp1, sizeof(key_name_buffer) - tmp1, " (%03X)", (scancode & 0x1FF));
 +
 +	return;
 +}
 +
 +
 diff --git a/plugins/HwHotKeys/src/HwHotKeys_resource.h b/plugins/HwHotKeys/src/HwHotKeys_resource.hBinary files differ new file mode 100644 index 0000000000..c96893bfcf --- /dev/null +++ b/plugins/HwHotKeys/src/HwHotKeys_resource.h diff --git a/plugins/HwHotKeys/src/HwHotKeys_version.h b/plugins/HwHotKeys/src/HwHotKeys_version.h new file mode 100644 index 0000000000..e4d52b0082 --- /dev/null +++ b/plugins/HwHotKeys/src/HwHotKeys_version.h @@ -0,0 +1,41 @@ +/* ============================================================================
 +Hardware HotKeys plugin for Miranda NG.
 +Copyright © Eugene f2065, http://f2065.narod.ru, f2065 mail.ru, ICQ 35078112
 +
 +This program is free software; you can redistribute it and / or
 +modify it under the terms of the GNU General Public License
 +as published by the Free Software Foundation; either version 2
 +of the License, or(at your option) any later version.
 +
 +This program is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
 +GNU General Public License for more details.
 +
 +You should have received a copy of the GNU General Public License
 +along with this program; if not, write to the Free Software
 +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111 - 1307, USA.
 +============================================================================ */
 +
 +// èñòîðèÿ âåðñèé:
 +// 1.0.0.6 - ïåðâàÿ âåðñèÿ Hardware HotKeys äëÿ Miranda NG (áîëåå ðàííèå âåðñèè áûëè äëÿ Miranda IM), èñïðàâëåíèå ñòàðûõ îøèáîê.
 +
 +
 +#define __MAJOR_VERSION          1
 +#define __MINOR_VERSION          0
 +#define __RELEASE_NUM            0
 +#define __BUILD_NUM              6
 +
 +#include <stdver.h>
 +
 +#define __PLUGIN_NAME      "Hardware HotKeys" // dll-fileinfo "FileVersion" è "ProductName", ìåíþ â íàñòðîéêàõ ìèðàíäû, íàçâàíèå ïëàãèíà â ìèðàíäå. Íåëîêàëèçóåìîå!
 +#define __FILENAME         "HwHotKeys.dll" // dll-fileinfo "OriginalFilename"
 +#define __DESCRIPTION_MIR  "Hardware HotKeys plugin for Miranda NG\r\nAllows to assign expanded multimedia keys (only for PS/2-keyboards)." // îïèñàíèå ïëàãèíà â ìèðàíäå (ëîêàëèçóåìîå)
 +#define __DESCRIPTION_DLL  "Hardware HotKeys plugin for Miranda NG." // îïèñàíèå ïëàãèíà â dll-fileinfo "FileDescription" (òàì ìíîãîñòðî÷íûå ñòðîêè - íå ðàáîòàþò). Íåëîêàëèçóåìîå!
 +#define __AUTHOR           "Eugene f2065" // îïèñàíèå ïëàãèíà â ìèðàíäå
 +#define __AUTHOREMAIL      "f2065@mail.ru" // îïèñàíèå ïëàãèíà â ìèðàíäå
 +#define __AUTHORWEB        "http://f2065.narod.ru/" // îïèñàíèå ïëàãèíà â dll-fileinfo "CompanyName", îïèñàíèå ïëàãèíà â ìèðàíäå
 +#define __COPYRIGHT        "© 2010-2015 Eugene f2065" // îïèñàíèå ïëàãèíà â dll-fileinfo "LegalCopyright", îïèñàíèå ïëàãèíà â ìèðàíäå
 +
 +#define __DbModName			"HwHotKeys" // èìÿ ðàçäåëà íàñòðîåê ïëàãèíà â ÁÄ ìèðàíäû
 +
 diff --git a/plugins/HwHotKeys/src/stdafx.cpp b/plugins/HwHotKeys/src/stdafx.cpp new file mode 100644 index 0000000000..93782795d3 --- /dev/null +++ b/plugins/HwHotKeys/src/stdafx.cpp @@ -0,0 +1,18 @@ +/*
 +Copyright (C) 2012-15 Miranda NG project (http://miranda-ng.org)
 +
 +This program is free software; you can redistribute it and/or
 +modify it under the terms of the GNU General Public License
 +as published by the Free Software Foundation version 2
 +of the License.
 +
 +This program is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +GNU General Public License for more details.
 +
 +You should have received a copy of the GNU General Public License
 +along with this program. If not, see <http://www.gnu.org/licenses/>.
 +*/
 +
 +#include "HwHotKeys.h"
\ No newline at end of file | 
