From bde57bab03a64210125652bf9803fc7c997e7e01 Mon Sep 17 00:00:00 2001 From: udaken Date: Sun, 16 Jul 2017 22:33:09 +0900 Subject: [PATCH 1/7] add .gitignore --- .gitignore | 288 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 288 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..940794e --- /dev/null +++ b/.gitignore @@ -0,0 +1,288 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ +**/Properties/launchSettings.json + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Typescript v1 declaration files +typings/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush +.cr/ + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs From 1c59e01c87592354963bf24b2363b2c1a652941c Mon Sep 17 00:00:00 2001 From: udaken Date: Sun, 16 Jul 2017 22:35:16 +0900 Subject: [PATCH 2/7] migrate to vs2017 --- CBXManager/CBXManager.vcxproj | 285 +++++++++++++++++++++++ CBXManager/CBXManager.vcxproj.filters | 61 +++++ CBXManager/packages.config | 4 + CBXManager/stdafx.h | 2 +- CBXShell.sln | 38 ++++ CBXShell/CBXShell.h | 215 ++++++++++++++++++ CBXShell/CBXShell.vcxproj | 314 ++++++++++++++++++++++++++ CBXShell/CBXShell.vcxproj.filters | 75 ++++++ CBXShell/StdAfx.cpp | 2 - CBXShell/cbxArchive.h | 2 +- CBXShell/packages.config | 4 + 11 files changed, 998 insertions(+), 4 deletions(-) create mode 100644 CBXManager/CBXManager.vcxproj create mode 100644 CBXManager/CBXManager.vcxproj.filters create mode 100644 CBXManager/packages.config create mode 100644 CBXShell.sln create mode 100644 CBXShell/CBXShell.h create mode 100644 CBXShell/CBXShell.vcxproj create mode 100644 CBXShell/CBXShell.vcxproj.filters create mode 100644 CBXShell/packages.config diff --git a/CBXManager/CBXManager.vcxproj b/CBXManager/CBXManager.vcxproj new file mode 100644 index 0000000..efa7272 --- /dev/null +++ b/CBXManager/CBXManager.vcxproj @@ -0,0 +1,285 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {D3E3653C-61EC-4AC8-A283-F9784128948C} + CBXManager + 8.1 + + + + Application + v141_xp + Unicode + true + + + Application + v141_xp + Unicode + + + Application + v141_xp + Unicode + true + + + Application + v141_xp + Unicode + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>15.0.26419.1 + + + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + MinimumRecommendedRules.ruleset + + + + + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + MinimumRecommendedRules.ruleset + + + + + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + MinimumRecommendedRules.ruleset + + + + + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + MinimumRecommendedRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + false + Win32 + true + $(IntDir)CBXManager.tlb + CBXManager.h + + CBXManager_i.c + CBXManager_p.c + + + Disabled + WIN32;_WINDOWS;STRICT;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + Use + Level3 + EditAndContinue + packages\wtl.9.1.1\lib\native\include + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + $(IntDir);%(AdditionalIncludeDirectories) + + + true + Windows + MachineX86 + + + + + _DEBUG;%(PreprocessorDefinitions) + false + X64 + true + $(IntDir)CBXManager.tlb + CBXManager.h + + CBXManager_i.c + CBXManager_p.c + + + Disabled + WIN32;_WINDOWS;STRICT;_DEBUG;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + Use + Level3 + ProgramDatabase + packages\wtl.9.1.1\lib\native\include + + + _DEBUG;_WIN64;%(PreprocessorDefinitions) + 0x0409 + $(IntDir);%(AdditionalIncludeDirectories) + + + true + Windows + MachineX64 + + + + + NDEBUG;%(PreprocessorDefinitions) + false + Win32 + true + $(IntDir)CBXManager.tlb + CBXManager.h + + CBXManager_i.c + CBXManager_p.c + + + MinSpace + OnlyExplicitInline + Size + true + true + true + WIN32;_WINDOWS;STRICT;NDEBUG;%(PreprocessorDefinitions) + Sync + MultiThreaded + true + Use + Level3 + + packages\wtl.9.1.1\lib\native\include + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + $(IntDir);%(AdditionalIncludeDirectories) + + + Windows + true + true + MachineX86 + + + + + NDEBUG;%(PreprocessorDefinitions) + false + X64 + true + $(IntDir)CBXManager.tlb + CBXManager.h + + CBXManager_i.c + CBXManager_p.c + + + MinSpace + OnlyExplicitInline + Size + true + true + true + WIN32;_WINDOWS;STRICT;NDEBUG;%(PreprocessorDefinitions) + Sync + MultiThreaded + true + Use + Level3 + + packages\wtl.9.1.1\lib\native\include + + + NDEBUG;_WIN64;%(PreprocessorDefinitions) + 0x0409 + $(IntDir);%(AdditionalIncludeDirectories) + + + Windows + true + true + MachineX64 + + + + + + + Create + Create + Create + Create + + + + + + + + + + + + + + + + + + + + + + + + + + このプロジェクトは、このコンピューター上にない NuGet パッケージを参照しています。それらのパッケージをダウンロードするには、[NuGet パッケージの復元] を使用します。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105 を参照してください。見つからないファイルは {0} です。 + + + + \ No newline at end of file diff --git a/CBXManager/CBXManager.vcxproj.filters b/CBXManager/CBXManager.vcxproj.filters new file mode 100644 index 0000000..7cc0d79 --- /dev/null +++ b/CBXManager/CBXManager.vcxproj.filters @@ -0,0 +1,61 @@ + + + + + {45425ad2-eec5-4f3f-8c27-3ac973147683} + cpp;c;cxx;def;odl;idl;hpj;bat;asm + + + {e15c04db-5cfb-4286-8e9f-3b74192a4f8a} + h;hpp;hxx;hm;inl;inc + + + {897ff7a1-bf05-4798-8cb3-dacf940220de} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;jpg;jpeg;jpe;manifest + + + + + Source Files + + + Source Files + + + dialog + + + + + Source Files + + + Source Files + + + dialog + + + dialog + + + dialog + + + Resource Files + + + + + Resource Files + + + + + Resource Files + + + + + + \ No newline at end of file diff --git a/CBXManager/packages.config b/CBXManager/packages.config new file mode 100644 index 0000000..a518177 --- /dev/null +++ b/CBXManager/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/CBXManager/stdafx.h b/CBXManager/stdafx.h index c9ec03d..eb8ded4 100644 --- a/CBXManager/stdafx.h +++ b/CBXManager/stdafx.h @@ -31,7 +31,7 @@ } }; -#include +#include "atlapp.h" extern CAppModule _Module; diff --git a/CBXShell.sln b/CBXShell.sln new file mode 100644 index 0000000..86814b3 --- /dev/null +++ b/CBXShell.sln @@ -0,0 +1,38 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26430.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CBXShell", "CBXShell\CBXShell.vcxproj", "{1A108438-5306-4026-B269-41BAA61ACCB3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CBXManager", "CBXManager\CBXManager.vcxproj", "{D3E3653C-61EC-4AC8-A283-F9784128948C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1A108438-5306-4026-B269-41BAA61ACCB3}.Debug|x64.ActiveCfg = Debug|x64 + {1A108438-5306-4026-B269-41BAA61ACCB3}.Debug|x64.Build.0 = Debug|x64 + {1A108438-5306-4026-B269-41BAA61ACCB3}.Debug|x86.ActiveCfg = Debug|Win32 + {1A108438-5306-4026-B269-41BAA61ACCB3}.Debug|x86.Build.0 = Debug|Win32 + {1A108438-5306-4026-B269-41BAA61ACCB3}.Release|x64.ActiveCfg = Release|x64 + {1A108438-5306-4026-B269-41BAA61ACCB3}.Release|x64.Build.0 = Release|x64 + {1A108438-5306-4026-B269-41BAA61ACCB3}.Release|x86.ActiveCfg = Release|Win32 + {1A108438-5306-4026-B269-41BAA61ACCB3}.Release|x86.Build.0 = Release|Win32 + {D3E3653C-61EC-4AC8-A283-F9784128948C}.Debug|x64.ActiveCfg = Debug|x64 + {D3E3653C-61EC-4AC8-A283-F9784128948C}.Debug|x64.Build.0 = Debug|x64 + {D3E3653C-61EC-4AC8-A283-F9784128948C}.Debug|x86.ActiveCfg = Debug|Win32 + {D3E3653C-61EC-4AC8-A283-F9784128948C}.Debug|x86.Build.0 = Debug|Win32 + {D3E3653C-61EC-4AC8-A283-F9784128948C}.Release|x64.ActiveCfg = Release|x64 + {D3E3653C-61EC-4AC8-A283-F9784128948C}.Release|x64.Build.0 = Release|x64 + {D3E3653C-61EC-4AC8-A283-F9784128948C}.Release|x86.ActiveCfg = Release|Win32 + {D3E3653C-61EC-4AC8-A283-F9784128948C}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/CBXShell/CBXShell.h b/CBXShell/CBXShell.h new file mode 100644 index 0000000..e2a109e --- /dev/null +++ b/CBXShell/CBXShell.h @@ -0,0 +1,215 @@ + + +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + + /* File created by MIDL compiler version 7.00.0555 */ +/* at Sun Jul 16 22:30:47 2017 + */ +/* Compiler settings for CBXShell.idl: + Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 + protocol : dce , ms_ext, c_ext, robust + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +/* @@MIDL_FILE_HEADING( ) */ + +#pragma warning( disable: 4049 ) /* more than 64k source lines */ + + +/* verify that the version is high enough to compile this file*/ +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif + +#include "rpc.h" +#include "rpcndr.h" + +#ifndef __RPCNDR_H_VERSION__ +#error this stub requires an updated version of +#endif // __RPCNDR_H_VERSION__ + +#ifndef COM_NO_WINDOWS_H +#include "windows.h" +#include "ole2.h" +#endif /*COM_NO_WINDOWS_H*/ + +#ifndef __CBXShell_h__ +#define __CBXShell_h__ + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +/* Forward Declarations */ + +#ifndef __ICBXShell_FWD_DEFINED__ +#define __ICBXShell_FWD_DEFINED__ +typedef interface ICBXShell ICBXShell; +#endif /* __ICBXShell_FWD_DEFINED__ */ + + +#ifndef __CBXShell_FWD_DEFINED__ +#define __CBXShell_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class CBXShell CBXShell; +#else +typedef struct CBXShell CBXShell; +#endif /* __cplusplus */ + +#endif /* __CBXShell_FWD_DEFINED__ */ + + +/* header files for imported files */ +#include "oaidl.h" +#include "ocidl.h" + +#ifdef __cplusplus +extern "C"{ +#endif + + +#ifndef __ICBXShell_INTERFACE_DEFINED__ +#define __ICBXShell_INTERFACE_DEFINED__ + +/* interface ICBXShell */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_ICBXShell; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("677D0B3B-E0A8-4ECC-BD7E-1BCC96E388EA") + ICBXShell : public IDispatch + { + public: + }; + +#else /* C style interface */ + + typedef struct ICBXShellVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ICBXShell * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + __RPC__deref_out void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ICBXShell * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ICBXShell * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + ICBXShell * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + ICBXShell * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + ICBXShell * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + ICBXShell * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS *pDispParams, + /* [out] */ VARIANT *pVarResult, + /* [out] */ EXCEPINFO *pExcepInfo, + /* [out] */ UINT *puArgErr); + + END_INTERFACE + } ICBXShellVtbl; + + interface ICBXShell + { + CONST_VTBL struct ICBXShellVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ICBXShell_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ICBXShell_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ICBXShell_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ICBXShell_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define ICBXShell_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define ICBXShell_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define ICBXShell_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ICBXShell_INTERFACE_DEFINED__ */ + + + +#ifndef __CBXSHELLLib_LIBRARY_DEFINED__ +#define __CBXSHELLLib_LIBRARY_DEFINED__ + +/* library CBXSHELLLib */ +/* [helpstring][version][uuid] */ + + +EXTERN_C const IID LIBID_CBXSHELLLib; + +EXTERN_C const CLSID CLSID_CBXShell; + +#ifdef __cplusplus + +class DECLSPEC_UUID("9E6ECB90-5A61-42BD-B851-D3297D9C7F39") +CBXShell; +#endif +#endif /* __CBXSHELLLib_LIBRARY_DEFINED__ */ + +/* Additional Prototypes for ALL interfaces */ + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/CBXShell/CBXShell.vcxproj b/CBXShell/CBXShell.vcxproj new file mode 100644 index 0000000..8999033 --- /dev/null +++ b/CBXShell/CBXShell.vcxproj @@ -0,0 +1,314 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {1A108438-5306-4026-B269-41BAA61ACCB3} + CBXShell + AtlProj + 8.1 + + + + DynamicLibrary + v141_xp + false + false + Unicode + true + + + DynamicLibrary + v141_xp + false + Unicode + + + DynamicLibrary + v141_xp + false + false + Unicode + true + + + DynamicLibrary + v141_xp + false + Unicode + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>15.0.26419.1 + + + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + MinimumRecommendedRules.ruleset + + + + + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + MinimumRecommendedRules.ruleset + + + + + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + MinimumRecommendedRules.ruleset + + + + + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + MinimumRecommendedRules.ruleset + + + + + + + + + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + Use + Level3 + true + EditAndContinue + packages\wtl.9.1.1\lib\native\include + + + _DEBUG;%(PreprocessorDefinitions) + 0x041a + + + true + .\CBXShell.def + true + Windows + false + MachineX86 + + + true + .\Debug/CBXShell.bsc + + + + + X64 + + + + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + Use + Level3 + true + ProgramDatabase + packages\wtl.9.1.1\lib\native\include + + + _DEBUG;_WIN64;%(PreprocessorDefinitions) + 0x041a + + + true + .\CBXShell.def + true + Windows + false + MachineX64 + + + true + .\Debug/CBXShell.bsc + + + + + + + + MaxSpeed + AnySuitable + true + Speed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + MultiThreaded + true + Use + Level3 + true + packages\wtl.9.1.1\lib\native\include + + + NDEBUG;%(PreprocessorDefinitions) + 0x041a + + + true + .\CBXShell.def + Windows + true + true + true + MachineX86 + + + true + .\Release/CBXShell.bsc + + + + + X64 + + + + MaxSpeed + AnySuitable + true + Speed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + MultiThreaded + true + Use + Level3 + true + packages\wtl.9.1.1\lib\native\include + + + NDEBUG;_WIN64;%(PreprocessorDefinitions) + 0x041a + + + true + .\CBXShell.def + Windows + true + true + true + MachineX64 + + + true + .\Release/CBXShell.bsc + + + + + + + Create + Create + Create + Create + + + + + + + + + + + + + + + $(OUTDIR);%(AdditionalIncludeDirectories) + $(OUTDIR);%(AdditionalIncludeDirectories) + $(OUTDIR);%(AdditionalIncludeDirectories) + $(OUTDIR);%(AdditionalIncludeDirectories) + + + + + + + + + + true + .\CBXShell.tlb + CBXShell.h + CBXShell_i.c + true + .\CBXShell.tlb + CBXShell.h + CBXShell_i.c + true + .\CBXShell.tlb + CBXShell.h + CBXShell_i.c + true + .\CBXShell.tlb + CBXShell.h + CBXShell_i.c + + + + + + + + + このプロジェクトは、このコンピューター上にない NuGet パッケージを参照しています。それらのパッケージをダウンロードするには、[NuGet パッケージの復元] を使用します。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105 を参照してください。見つからないファイルは {0} です。 + + + + \ No newline at end of file diff --git a/CBXShell/CBXShell.vcxproj.filters b/CBXShell/CBXShell.vcxproj.filters new file mode 100644 index 0000000..4673290 --- /dev/null +++ b/CBXShell/CBXShell.vcxproj.filters @@ -0,0 +1,75 @@ + + + + + {a2152652-25c3-4e19-be72-348ef0d71a59} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {273fdec6-dec0-4001-92c7-f3fc4017eb90} + ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe + + + {bfe08d86-a8d3-4230-806f-baf1db1ed3e1} + + + {54a40bde-95f3-49d8-ad0a-0874355d7b6c} + + + + + Source Files + + + Source Files + + + COM + + + CBX + + + + + Source Files + + + Source Files + + + Resource Files + + + COM + + + CBX + + + CBX + + + CBX + + + + + Resource Files + + + + + COM + + + COM + + + + + + COM + + + \ No newline at end of file diff --git a/CBXShell/StdAfx.cpp b/CBXShell/StdAfx.cpp index b39052a..1ed7be5 100644 --- a/CBXShell/StdAfx.cpp +++ b/CBXShell/StdAfx.cpp @@ -8,5 +8,3 @@ #include #include #endif - -#include diff --git a/CBXShell/cbxArchive.h b/CBXShell/cbxArchive.h index dba6bc1..b8d208b 100644 --- a/CBXShell/cbxArchive.h +++ b/CBXShell/cbxArchive.h @@ -541,7 +541,7 @@ catch (...){ ATLTRACE("exception in IQueryInfo::GetInfoTip\n"); return S_FALSE;} private: inline BOOL GetFileSizeCrt(LPCTSTR pszFile, __int64 &fsize) { - _stat64 _s; + struct _stat64 _s; _s.st_size=0; if (0!=::_tstat64(pszFile, &_s)) return FALSE; fsize=_s.st_size; diff --git a/CBXShell/packages.config b/CBXShell/packages.config new file mode 100644 index 0000000..a518177 --- /dev/null +++ b/CBXShell/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file From 21f0182618006e7398ae0712b4b66edd0ad1dcdc Mon Sep 17 00:00:00 2001 From: udaken Date: Sun, 16 Jul 2017 22:43:34 +0900 Subject: [PATCH 3/7] unrar v8 --- CBXShell/unrar.h | 45 ++++++++++++++++++++++++++++++++++++++++--- CBXShell/unrar.lib | Bin 4114 -> 4114 bytes CBXShell/unrar64.lib | Bin 3972 -> 3972 bytes 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/CBXShell/unrar.h b/CBXShell/unrar.h index 83a6e21..19207d0 100644 --- a/CBXShell/unrar.h +++ b/CBXShell/unrar.h @@ -3,6 +3,7 @@ #pragma pack(1) +#define ERAR_SUCCESS 0 #define ERAR_END_ARCHIVE 10 #define ERAR_NO_MEMORY 11 #define ERAR_BAD_DATA 12 @@ -16,6 +17,8 @@ #define ERAR_SMALL_BUF 20 #define ERAR_UNKNOWN 21 #define ERAR_MISSING_PASSWORD 22 +#define ERAR_EREFERENCE 23 +#define ERAR_BAD_PASSWORD 24 #define RAR_OM_LIST 0 #define RAR_OM_EXTRACT 1 @@ -28,7 +31,12 @@ #define RAR_VOL_ASK 0 #define RAR_VOL_NOTIFY 1 -#define RAR_DLL_VERSION 5 +#define RAR_DLL_VERSION 8 + +#define RAR_HASH_NONE 0 +#define RAR_HASH_CRC32 1 +#define RAR_HASH_BLAKE2 2 + #ifdef _UNIX #define CALLBACK @@ -39,6 +47,13 @@ #define UINT unsigned int #endif +#define RHDF_SPLITBEFORE 0x01 +#define RHDF_SPLITAFTER 0x02 +#define RHDF_ENCRYPTED 0x04 +#define RHDF_SOLID 0x10 +#define RHDF_DIRECTORY 0x20 + + struct RARHeaderData { char ArcName[260]; @@ -80,7 +95,20 @@ struct RARHeaderDataEx unsigned int CmtBufSize; unsigned int CmtSize; unsigned int CmtState; - unsigned int Reserved[1024]; + unsigned int DictSize; + unsigned int HashType; + char Hash[32]; + unsigned int RedirType; + wchar_t *RedirName; + unsigned int RedirNameSize; + unsigned int DirTarget; + unsigned int MtimeLow; + unsigned int MtimeHigh; + unsigned int CtimeLow; + unsigned int CtimeHigh; + unsigned int AtimeLow; + unsigned int AtimeHigh; + unsigned int Reserved[988]; }; @@ -97,6 +125,16 @@ struct RAROpenArchiveData typedef int (CALLBACK *UNRARCALLBACK)(UINT msg,LPARAM UserData,LPARAM P1,LPARAM P2); +#define ROADF_VOLUME 0x0001 +#define ROADF_COMMENT 0x0002 +#define ROADF_LOCK 0x0004 +#define ROADF_SOLID 0x0008 +#define ROADF_NEWNUMBERING 0x0010 +#define ROADF_SIGNED 0x0020 +#define ROADF_RECOVERY 0x0040 +#define ROADF_ENCHEADERS 0x0080 +#define ROADF_FIRSTVOLUME 0x0100 + struct RAROpenArchiveDataEx { char *ArcName; @@ -114,7 +152,8 @@ struct RAROpenArchiveDataEx }; enum UNRARCALLBACK_MESSAGES { - UCM_CHANGEVOLUME,UCM_PROCESSDATA,UCM_NEEDPASSWORD + UCM_CHANGEVOLUME,UCM_PROCESSDATA,UCM_NEEDPASSWORD,UCM_CHANGEVOLUMEW, + UCM_NEEDPASSWORDW }; typedef int (PASCAL *CHANGEVOLPROC)(char *ArcName,int Mode); diff --git a/CBXShell/unrar.lib b/CBXShell/unrar.lib index c17193a1c8e078465f0baf178a20ea02229d9034..c211cd4a4087dfe66f08ab175587be871135039e 100644 GIT binary patch literal 4114 zcmcIn&2AG(5dOv{KOW~#z-<8;fwa39Z(@&0BCTNZ151QSqKU(bO9o>P#A1jeJ3wx{ z0Qck&<+2a4*NE#L_P_(|1@RV$t(xiSnQ4!mu?Q{Ibaz#Cf8Etp-8DCVuXh@|clF;2 z@iJ#DE|$v`qg09WXGM3uToSEkI)I;m(Pdz~3FMA}{70WAiU5=T#iz+bz@yJp6HT1> zG)Z$XO<97@s3w{|6;z^{C|_f;?X}078&=I;y}z|$t!>seEPH#;TC!l<>)X|8uNdz= zxi76f++KfVuP)V=VAG(DeP?fpY|wh^m27w~4X4|E&~hDf?oMP@RS?(xv#+u*A?+>aV5RQ5 z&+Cm>=3FT9*Q?=4@mOs$}T6Fv7T)rodPp1)Af)aSr&H2Z|HG7xMJON#HZl3H5cV zttsG)=#&PPh-#!uL4{FF;}S-YgN`wbBaaD8VGL8Yji&UFlCdCji>j9KJmhb0VZ6L# z4{3U$@DuTna=>K|`77v%nmyzPoP3%Sy-rK$o3IRRvw0(8Ge4?65rBWZ$u=7hRh7U@ z?1UUu(GrO&BjB^%zd=XT7iilw_T=aCqVA|gVax(&w;YmHjqfQwGRjz!-dA~G7~0<} zK~k-tahPfXO?{3+IN3@WT{5^7v}=Tx5oqxzP9i|IQeq9-S+*C;dp0G;&}hbhQ@bS4 zA}=l{x*^zwp4vz+n)kkkaI%%slE!?pNBTLU?~!40KOzlEX48>kspLM zF3^n?U{zF!er==@P(F_!P)Y5Afw9)g;qz z1DT;QSY|CDCsdQny%SQQnq;cZV%wWryE|6h-nhHBZf)+?cP#tGVaMsfwznVEYW-&X z>DvQq{lTN{hxW#5eHFH~YV91khpQBW)=SqkXoS|mk)5EAd*1C0@(nEHz3#QUZqmTI zfqX63X+9uvJLa-7g}6HAM=;5rfq{H?JMD(s?cQs7u35gNjH(;rzP}H24lLxo=N_*+ zp7+#g{9%?W%E-Dw`0hK0&)vsukAY*eW`Ern^bvF1aE_g%UI}K=&*^qwwL486W>?XZ z=Y98h!}A`yoo=grXf7yA&@ChL!iab=N5ohg2bz<>n>_G-3MfqjpD5FNGr&iZx703B zZOsBFB=4wGg``ftL@JD94i_+nJPMe=B&INpS_A)2&+CLV(-)UA%_(3a;4+!w zDw!FlCTy@vvFs750eKMLH%gdEp&#o_6i>2L&lAtM`w6p>Fg(y;y){t<=80+vLJt1PzZ_xvu|f?R0I45=8)N`_?p4Ee{O7*8)bLz=!R z`cX1uG1PK~{2ew#%^C6?c0SFH{!CLC_+S}1W=n<=vw&6q6F{)N$uS$ks%jV}PC{mt zS`=0pp`QKz3mc+7$JnNcCtsK6bw;g-U>5mx%ap8T_?+S`qZez^{VF#MBj_ zOw)`&)32ilPJX3imn4^lc8Sok0xf>UNd(BRlvu-7mg~pzuT6ZYx~rklxx>39+)qBBJO`$PlZiH1grVl!Hxi$S7gCBwgnSVnS6hR>qSvZG|= zGxU(rq>`}-B9_rTCD8-SbCA!^KU`kQuIA_NtjuQTmsgjv`L)e#CYy99pI=;CSO^=? zTWz8GSMRSaKFH5yRx^ZgOIz+{24SeYaxp>W#a6yaX*ch@X=w#D>}I`c-3?7-D=8Ppn)jF_UPn2WXZSRx9rIY{B!M7K+aUBdOFj z<-+EM`>5*ic-zqGQPvt{uCQGQ**Ev;5rumFb+uNqrd~Em*xYls=REI`TdP;9n}L8H`p+nK>d70c(U(q=pERKWm_qlgfbkrmVDbLH78; zvy@FCJoK#6XV_%P^BNTY+bQj&ruBLKBwBjcOMS82<5+~iNL40F?$ehW7guzXGWdCK z8oEx?_{?ObgcQCwWx7t`=L_VgR`jAy)3s094yU&&ND=xCF?Os?Q~Xm8>Iq~AmzZ$s z5}h1J+R@iW5AqN7Zf@dXrC6)htIxLMm$O&m3-gN)biY+G7%zl{kbe9(jxTZUXbm7^FQo6-e z4`uN^-b*bi-0g@dQwejkGgEpRO!?SY950cm6;n#8%l`_dOdBOL<%4PHnwj!n7|_YS zp2H#zeI#@pwVTOMe*FM|+T_+zYm;9I6DZD4&M#Tgls5V07(Ls4GYws{-LXfv)5sp* z$z?9&IKMABNlWke^ul8ir7v_>ik*|G-VyhmlzHRYSWK0O!m=+Q3D$L{IX7CP@w)+e z$DYZ1?PyqSJi~3!goT^!XlQLb>r-gr!aX8Z8-DbMu+}Xw;bdq0FiGCT#nafa6ACMM z9vls+jaLKBNKM<-wO4I+Yfxdy=Z%=2y5@Xhsx{~1h~Q9wWxbjtp!n}>$J+Q7_3`|- Xn3(<_d~;g+b^*S{0<5Mdo`n1ZgnxuZ literal 3972 zcmcIm%}*LZ6n}zByVTt&D;6Sd-HoU^Ypb+Efn8)Uxwu}8A&82 zVw2O8FQRDmE<+&zCczUf-V2=PBA;Ja&a7s0`Sje{Y<3}&Tg~PV%2lNrk3v4bvc9xrH-OK= zf{*9s*H;$v=~ONS*;ICQUn{3D45g16PEgw0&o?RM?%ZKZD^#Q1tX`>Uw#g(dT4gmw zok!8C)>K3%Sx`93hNESwm4a5Qy)Efvo;y1t_nK3GOnDQt>L zc~{%0=H{t)ABP4Xs)$Rmzr?tnQl4 zaf{7ENas@*z@-~G=K+}UVIQT4Jiqb-Yy|*Dus%jP$95d~9>Skau)aVWOa&N#A?ODe zc)$y87z7{qAqWBJ1ILYHP8)k{-lBq1Rqomef#V{`j31k9ev3bHkNO_bT-Phi@_EDh6#*+&#MJ3vD8Sml5$ ze((2E^AdMEVoD@t-0a(4^~lj+%J;_N*b)I+F-7G==9e&K%1|<i+#a#o@WW-p+LXYElb!LyNb)9rJi;9t;8@o4 zpf{v8Ub&l*nzpNJuiEU^AjhK58!|m~&G}fQHRr<^L63zcy_zT>X?M0`ZG7{Zc;;J- WOn(R8qOE; Date: Fri, 21 Jul 2017 21:00:22 +0900 Subject: [PATCH 4/7] improved thumbnail quality --- CBXShell/cbxArchive.h | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/CBXShell/cbxArchive.h b/CBXShell/cbxArchive.h index b8d208b..07926d7 100644 --- a/CBXShell/cbxArchive.h +++ b/CBXShell/cbxArchive.h @@ -624,6 +624,34 @@ catch (...){ ATLTRACE("exception in IQueryInfo::GetInfoTip\n"); return S_FALSE;} return TRUE; } + static inline BOOL Draw( + CImage ci, + _In_ HDC hDestDC, + _In_ int xDest, + _In_ int yDest, + _In_ int nDestWidth, + _In_ int nDestHeight, + _In_ int xSrc, + _In_ int ySrc, + _In_ int nSrcWidth, + _In_ int nSrcHeight, + _In_ Gdiplus::InterpolationMode interpolationMode) throw() + { + Gdiplus::Bitmap bm((HBITMAP)ci, NULL); + if (bm.GetLastStatus() != Gdiplus::Ok) + { + return FALSE; + } + + Gdiplus::Graphics dcDst(hDestDC); + dcDst.SetInterpolationMode(interpolationMode); + + Gdiplus::Rect destRec(xDest, yDest, nDestWidth, nDestHeight); + + Gdiplus::Status status = dcDst.DrawImage(&bm, destRec, xSrc, ySrc, nSrcWidth, nSrcHeight, Gdiplus::Unit::UnitPixel); + + return status == Gdiplus::Ok; + } HBITMAP ThumbnailFromIStream(IStream* pIs, const LPSIZE pThumbSize) { @@ -656,7 +684,8 @@ catch (...){ ATLTRACE("exception in IQueryInfo::GetInfoTip\n"); return S_FALSE;} HBITMAP hbmpOld=hdcNew.SelectBitmap(hbmpNew); hdcNew.FillSolidRect(0,0, tw,th, RGB(255,255,255));//white background - ci.Draw(hdcNew, 0,0, tw,th, 0,0, ci.GetWidth(),ci.GetHeight());//too late for error checks + RECT rect = { 0,0, ci.GetWidth(),ci.GetHeight() }; + Draw(ci, hdcNew, 0, 0, tw, th, 0, 0, ci.GetWidth(), ci.GetHeight(), Gdiplus::InterpolationMode::InterpolationModeHighQualityBicubic);//too late for error checks hdcNew.SelectBitmap(hbmpOld); return hbmpNew.Detach(); From 644ecbdddaf8461e1e0e52d1a920f2e6dbd3b101 Mon Sep 17 00:00:00 2001 From: udaken Date: Thu, 2 Nov 2017 20:42:29 +0900 Subject: [PATCH 5/7] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index df42f94..ae2d409 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # CBX Shell Thumbnail preview for ZIP and RAR image archives (CBZ/CBR) -##Minimium system requirements +## Minimium system requirements -Windows 2000 / XP / Vista / 7 (32 / 64-bit)
Internet Explorer 6 or later +Windows 7/8/8.1/10 (32 / 64-bit) From 618d3db5db3a1ad1744a252f5b0af74684665daf Mon Sep 17 00:00:00 2001 From: Invertex Date: Thu, 14 Jun 2018 13:16:07 -0700 Subject: [PATCH 6/7] Added option for showing archive indicator on thumbnail. Doesn't do anything yet. --- CBXManager/CBXManager.rc | 14 ++++++++------ CBXManager/CBXManager.vcxproj | 7 +++++-- CBXManager/MainDlg.cpp | 9 ++++++++- CBXManager/RegManager.h | 22 ++++++++++++++++++++++ CBXManager/resource.h | 2 ++ CBXShell/CBXShell.h | 4 ++-- CBXShell/CBXShell.vcxproj | 3 ++- 7 files changed, 49 insertions(+), 12 deletions(-) diff --git a/CBXManager/CBXManager.rc b/CBXManager/CBXManager.rc index 4681e23..be8b388 100644 --- a/CBXManager/CBXManager.rc +++ b/CBXManager/CBXManager.rc @@ -27,22 +27,24 @@ FONT 8, "MS Shell Dlg 2", 400, 0, 1 -IDD_MAINDLG DIALOG 0, 0, 190, 194 +IDD_MAINDLG DIALOG 0, 0, 190, 224 STYLE DS_CONTEXTHELP | DS_SETFONT | WS_BORDER | WS_CAPTION | WS_DLGFRAME | WS_SYSMENU CAPTION "CBX Shell Manager" FONT 8, "Ms Shell Dlg" { GROUPBOX "File types", IDC_TH_GROUP, 10, 10, 170, 82 - GROUPBOX "Advanced", IDC_SORT_ADVOPTGROUP, 10, 100, 170, 56 - PUSHBUTTON "Cancel", IDCANCEL, 70, 170, 50, 14 - PUSHBUTTON "Apply", IDC_APPLY, 130, 170, 50, 14 - DEFPUSHBUTTON "OK", IDOK, 10, 170, 50, 14 + GROUPBOX "Advanced", IDC_SORT_ADVOPTGROUP, 10, 100, 170, 88 + PUSHBUTTON "Cancel", IDCANCEL, 70, 200, 50, 14 + PUSHBUTTON "Apply", IDC_APPLY, 130, 200, 50, 14 + DEFPUSHBUTTON "OK", IDOK, 10, 200, 50, 14 AUTOCHECKBOX "CBZ Image Archives", IDC_CB_CBZ, 20, 25, 145, 10 AUTOCHECKBOX "ZIP Archives", IDC_CB_ZIP, 20, 40, 150, 8 AUTOCHECKBOX "CBR Image Archives", IDC_CB_CBR, 20, 60, 150, 10 AUTOCHECKBOX "RAR Archives", IDC_CB_RAR, 20, 75, 150, 8 - AUTOCHECKBOX "Sort images alphabetically", IDC_CB_SORT, 20, 115, 155, 8 + AUTOCHECKBOX "Sort images alphabetically", IDC_CB_SORT, 20, 115, 155, 8 LTEXT "Uncheck to sort images by archive order.\nRequired to display custom thumbnail.", IDC_SORT_DESC, 30, 130, 145, 18, SS_LEFT, WS_EX_TRANSPARENT + AUTOCHECKBOX "Show archive indicator", IDC_CB_SHOWICON, 20, 150, 150, 10 + LTEXT "Display a small icon at bottom right of thumbnail letting you know it's an archive.", IDC_CB_SHOWICON_DESC, 30, 165, 145, 18, SS_LEFT, WS_EX_TRANSPARENT } diff --git a/CBXManager/CBXManager.vcxproj b/CBXManager/CBXManager.vcxproj index efa7272..a5046e0 100644 --- a/CBXManager/CBXManager.vcxproj +++ b/CBXManager/CBXManager.vcxproj @@ -270,16 +270,19 @@ - + + Designer + + このプロジェクトは、このコンピューター上にない NuGet パッケージを参照しています。それらのパッケージをダウンロードするには、[NuGet パッケージの復元] を使用します。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105 を参照してください。見つからないファイルは {0} です。 - + \ No newline at end of file diff --git a/CBXManager/MainDlg.cpp b/CBXManager/MainDlg.cpp index f38571c..960f452 100644 --- a/CBXManager/MainDlg.cpp +++ b/CBXManager/MainDlg.cpp @@ -56,6 +56,7 @@ void CMainDlg::InitUI() Button_SetCheck(GetDlgItem(IDC_CB_CBZ), m_reg.HasTH(CBX_CBZ)); Button_SetCheck(GetDlgItem(IDC_CB_RAR), m_reg.HasTH(CBX_RAR)); Button_SetCheck(GetDlgItem(IDC_CB_CBR), m_reg.HasTH(CBX_CBR)); + Button_SetCheck(GetDlgItem(IDC_CB_SHOWICON), m_reg.IsShowIconOpt());//CBX_SHOWICON Button_SetCheck(GetDlgItem(IDC_CB_SORT), m_reg.IsSortOpt());//CBX_SORT } @@ -71,7 +72,13 @@ void CMainDlg::OnApplyImpl() bRefresh=TRUE; m_reg.SetSortOpt(bRet); } - + //show archive icon + bRet = (BST_CHECKED == Button_GetCheck(GetDlgItem(IDC_CB_SHOWICON))); + if (bRet != m_reg.IsShowIconOpt()) + { + bRefresh = TRUE; + m_reg.SetShowIconOpt(bRet); + } //thumbnail handlers bRet=(BST_CHECKED==Button_GetCheck(GetDlgItem(IDC_CB_ZIP))); if (bRet!=m_reg.HasTH(CBX_ZIP)) diff --git a/CBXManager/RegManager.h b/CBXManager/RegManager.h index 8e244a0..fec5806 100644 --- a/CBXManager/RegManager.h +++ b/CBXManager/RegManager.h @@ -65,6 +65,28 @@ class CRegManager rk.SetDWORDValue(_T("NoSort"), (DWORD)(bSort ? FALSE : TRUE)); } + // sort option + BOOL IsShowIconOpt() + { + DWORD d; + CRegKey rk; + if (ERROR_SUCCESS == rk.Open(HKEY_CURRENT_USER, CBX_APP_KEY, KEY_READ)) + { + if (ERROR_SUCCESS == rk.QueryDWORDValue(_T("ShowIcon"), d)) + return (d == TRUE); + } + return TRUE; + } + + ////////////// + // set show archive Icon + void SetShowIconOpt(BOOL bShowIcon) + { + CRegKey rk; + if (ERROR_SUCCESS == rk.Create(HKEY_CURRENT_USER, CBX_APP_KEY, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE)) + rk.SetDWORDValue(_T("ShowIcon"), (DWORD)(bShowIcon ? TRUE : FALSE)); + } + /////////////////////////////// // check for thumbnail handlers BOOL HasTH(int cbxType) diff --git a/CBXManager/resource.h b/CBXManager/resource.h index 0d65f26..01dcaae 100644 --- a/CBXManager/resource.h +++ b/CBXManager/resource.h @@ -11,6 +11,8 @@ #define IDC_SORT_ADVOPTGROUP 1003 #define IDC_CB_CBZ 1004 #define IDC_TH_GROUP 1005 +#define IDC_CB_SHOWICON 1010 +#define IDC_CB_SHOWICON_DESC 1011 #define IDC_CB_RAR 57681 #define IDC_CB_ZIP 57682 #define IDC_CB_SORT 57683 diff --git a/CBXShell/CBXShell.h b/CBXShell/CBXShell.h index e2a109e..ce25f27 100644 --- a/CBXShell/CBXShell.h +++ b/CBXShell/CBXShell.h @@ -4,10 +4,10 @@ /* File created by MIDL compiler version 7.00.0555 */ -/* at Sun Jul 16 22:30:47 2017 +/* at Thu Jun 14 13:12:30 2018 */ /* Compiler settings for CBXShell.idl: - Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: diff --git a/CBXShell/CBXShell.vcxproj b/CBXShell/CBXShell.vcxproj index 8999033..bf4a25d 100644 --- a/CBXShell/CBXShell.vcxproj +++ b/CBXShell/CBXShell.vcxproj @@ -304,11 +304,12 @@ + このプロジェクトは、このコンピューター上にない NuGet パッケージを参照しています。それらのパッケージをダウンロードするには、[NuGet パッケージの復元] を使用します。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105 を参照してください。見つからないファイルは {0} です。 - + \ No newline at end of file From 3e0586140a2ac8aa52d4e36972b3184d00a4ca9b Mon Sep 17 00:00:00 2001 From: Invertex Date: Thu, 14 Jun 2018 20:01:43 -0700 Subject: [PATCH 7/7] Added drawing of ZIP icon on corner of thumbnails --- CBXManager/CBXManager.rc | 2 +- CBXShell/CBXShell.cpp | 4 ++++ CBXShell/CBXShell.h | 2 +- CBXShell/CBXShell.rc | 18 +++++++++++++++--- CBXShell/CBXShell.vcxproj | 4 ++++ CBXShell/CBXShell.vcxproj.filters | 5 +++++ CBXShell/Resources/zip.ico | Bin 0 -> 270398 bytes CBXShell/cbxArchive.h | 16 ++++++++++++---- CBXShell/resource.h | 3 +++ 9 files changed, 45 insertions(+), 9 deletions(-) create mode 100644 CBXShell/Resources/zip.ico diff --git a/CBXManager/CBXManager.rc b/CBXManager/CBXManager.rc index be8b388..5d5e369 100644 --- a/CBXManager/CBXManager.rc +++ b/CBXManager/CBXManager.rc @@ -44,7 +44,7 @@ FONT 8, "Ms Shell Dlg" AUTOCHECKBOX "Sort images alphabetically", IDC_CB_SORT, 20, 115, 155, 8 LTEXT "Uncheck to sort images by archive order.\nRequired to display custom thumbnail.", IDC_SORT_DESC, 30, 130, 145, 18, SS_LEFT, WS_EX_TRANSPARENT AUTOCHECKBOX "Show archive indicator", IDC_CB_SHOWICON, 20, 150, 150, 10 - LTEXT "Display a small icon at bottom right of thumbnail letting you know it's an archive.", IDC_CB_SHOWICON_DESC, 30, 165, 145, 18, SS_LEFT, WS_EX_TRANSPARENT + LTEXT "Display a ZIP icon top-left of thumbnail to let you know it's an archive.", IDC_CB_SHOWICON_DESC, 30, 165, 145, 18, SS_LEFT, WS_EX_TRANSPARENT } diff --git a/CBXShell/CBXShell.cpp b/CBXShell/CBXShell.cpp index e6539ad..c5dacc2 100644 --- a/CBXShell/CBXShell.cpp +++ b/CBXShell/CBXShell.cpp @@ -15,15 +15,19 @@ BEGIN_OBJECT_MAP(ObjectMap) OBJECT_ENTRY(CLSID_CBXShell, CCBXShell) END_OBJECT_MAP() +HICON zipIcon; ///////////////////////////////////////////////////////////////////////////// // DLL Entry Point extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) { + zipIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)); + if (dwReason == DLL_PROCESS_ATTACH) { _Module.Init(ObjectMap, hInstance, &LIBID_CBXSHELLLib); DisableThreadLibraryCalls(hInstance); + } else if (dwReason == DLL_PROCESS_DETACH) diff --git a/CBXShell/CBXShell.h b/CBXShell/CBXShell.h index ce25f27..8039dc0 100644 --- a/CBXShell/CBXShell.h +++ b/CBXShell/CBXShell.h @@ -4,7 +4,7 @@ /* File created by MIDL compiler version 7.00.0555 */ -/* at Thu Jun 14 13:12:30 2018 +/* at Thu Jun 14 19:57:45 2018 */ /* Compiler settings for CBXShell.idl: Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555 diff --git a/CBXShell/CBXShell.rc b/CBXShell/CBXShell.rc index adae32c..fd61a25 100644 --- a/CBXShell/CBXShell.rc +++ b/CBXShell/CBXShell.rc @@ -2,7 +2,10 @@ // Copyright (C) 2006-2009 // http://www.resedit.net -#include +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#include "prsht.h" +#undef APSTUDIO_HIDDEN_SYMBOLS #include #include #include @@ -18,6 +21,17 @@ IDR_CBXShell REGISTRY "CBXShell.rgs" +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_ICON1 ICON "Resources\\zip.ico" + + + // // String Table resources // @@ -27,8 +41,6 @@ STRINGTABLE IDS_CBXSHELL_DESC "CBXShell Class" } - - // // Version Information resources // diff --git a/CBXShell/CBXShell.vcxproj b/CBXShell/CBXShell.vcxproj index bf4a25d..51b7a9d 100644 --- a/CBXShell/CBXShell.vcxproj +++ b/CBXShell/CBXShell.vcxproj @@ -301,6 +301,10 @@ CBXShell_i.c + + + + diff --git a/CBXShell/CBXShell.vcxproj.filters b/CBXShell/CBXShell.vcxproj.filters index 4673290..2599364 100644 --- a/CBXShell/CBXShell.vcxproj.filters +++ b/CBXShell/CBXShell.vcxproj.filters @@ -72,4 +72,9 @@ COM + + + Resource Files + + \ No newline at end of file diff --git a/CBXShell/Resources/zip.ico b/CBXShell/Resources/zip.ico new file mode 100644 index 0000000000000000000000000000000000000000..1ff0710b4031b48dadccacf831546ebab1c72960 GIT binary patch literal 270398 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 literal 0 HcmV?d00001 diff --git a/CBXShell/cbxArchive.h b/CBXShell/cbxArchive.h index 07926d7..a4dc763 100644 --- a/CBXShell/cbxArchive.h +++ b/CBXShell/cbxArchive.h @@ -255,9 +255,9 @@ class CUnRar } }; - class CCBXArchive { + public: CCBXArchive() { @@ -536,6 +536,7 @@ catch (...){ ATLTRACE("exception in IQueryInfo::GetInfoTip\n"); return S_FALSE;} CBXTYPE m_cbxType; IStream* m_pIs; BOOL m_bSort; + BOOL m_showIcon; private: @@ -662,8 +663,10 @@ catch (...){ ATLTRACE("exception in IQueryInfo::GetInfoTip\n"); return S_FALSE;} //check size int tw=ci.GetWidth(); int th=ci.GetHeight(); - float rx=(float)pThumbSize->cx/(float)tw; - float ry=(float)pThumbSize->cy/(float)th; + float cx = (float)pThumbSize->cx; + float cy = (float)pThumbSize->cy; + float rx = cx/(float)tw; + float ry = cy/(float)th; //if bigger size if ((rx<1) || (ry<1)) @@ -684,8 +687,11 @@ catch (...){ ATLTRACE("exception in IQueryInfo::GetInfoTip\n"); return S_FALSE;} HBITMAP hbmpOld=hdcNew.SelectBitmap(hbmpNew); hdcNew.FillSolidRect(0,0, tw,th, RGB(255,255,255));//white background - RECT rect = { 0,0, ci.GetWidth(),ci.GetHeight() }; + Draw(ci, hdcNew, 0, 0, tw, th, 0, 0, ci.GetWidth(), ci.GetHeight(), Gdiplus::InterpolationMode::InterpolationModeHighQualityBicubic);//too late for error checks + if(m_showIcon) + DrawIcon(hdcNew, 0, 0, zipIcon); + hdcNew.SelectBitmap(hbmpOld); return hbmpNew.Detach(); @@ -767,6 +773,8 @@ catch (...){ ATLTRACE("exception in IQueryInfo::GetInfoTip\n"); return S_FALSE;} { if (ERROR_SUCCESS==_rk.QueryDWORDValue(_T("NoSort"), _d)) m_bSort=(_d==FALSE); + if (ERROR_SUCCESS == _rk.QueryDWORDValue(_T("ShowIcon"), _d)) + m_showIcon = (_d == TRUE); } } diff --git a/CBXShell/resource.h b/CBXShell/resource.h index 42d1daa..ad17bd8 100644 --- a/CBXShell/resource.h +++ b/CBXShell/resource.h @@ -2,6 +2,9 @@ #define IDC_STATIC (-1) #endif +#define IDI_ICON1 101 #define IDR_CBXShell 102 #define IDS_PROJNAME 40000 #define IDS_CBXSHELL_DESC 40001 + +extern HICON zipIcon; \ No newline at end of file