f2cfd90c46
* Added localization code to pipeline and created one LocProject json for Settings * Fixed typo * Reordered nuget source * Moved nuget install to restore step * Added FZ.rc file to LocProj * Added FZ resx file and modified rc file * Fixed file names * Changed to check folder for LocProject files * Updated folder * Changed directory * Changed to src directory * Changed language set and name format, removed rc file localization * Added all projects with resx/resw files * Added newline to end of file * Removed nuget source as it is not used * Updated comments * Updated keyboard manager to use resx file * Tweaked resources.resx and added it to project files * Added comments and added in string table to resx script * Remove change from bad merge * Fix syntax error in convert stringtable * Changed file type to None * Migrated color picker's resources * Migrated resources for Microsoft.Launcher * Migrated resources for fancy zones * Revert fancyzones changes * Migrated resources for ImageResizer and modified script to add language specific code * Added try catch and checks for modification to avoid unnecessary file creation * Changed tab insertion to 4 spaces to avoid mixed file types in rc file * Migrated resources for power preview project * Added LocProject.json file for 5 projects * added resgen exception check * Moved non-localizable strings out of resx for powerpreview
57 lines
2.9 KiB
C++
57 lines
2.9 KiB
C++
#pragma once
|
|
|
|
#define ID_RESIZE_PICTURES 0
|
|
#define RESIZE_PICTURES_VERBW L"resize"
|
|
#include "pch.h"
|
|
#include "Generated Files/resource.h"
|
|
#include "ImageResizerExt_i.h"
|
|
|
|
#if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)
|
|
#error "Single-threaded COM objects are not properly supported on Windows CE platform, such as the Windows Mobile platforms that do not include full DCOM support. Define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA to force ATL to support creating single-thread COM object's and allow use of it's single-threaded COM object implementations. The threading model in your rgs file was set to 'Free' as that is the only threading model supported in non DCOM Windows CE platforms."
|
|
#endif
|
|
|
|
using namespace ATL;
|
|
|
|
class ATL_NO_VTABLE __declspec(uuid("51B4D7E5-7568-4234-B4BB-47FB3C016A69")) CContextMenuHandler :
|
|
public CComObjectRootEx<CComSingleThreadModel>,
|
|
public CComCoClass<CContextMenuHandler, &CLSID_ContextMenuHandler>,
|
|
public IShellExtInit,
|
|
public IContextMenu,
|
|
public IExplorerCommand
|
|
{
|
|
BEGIN_COM_MAP(CContextMenuHandler)
|
|
COM_INTERFACE_ENTRY(IShellExtInit)
|
|
COM_INTERFACE_ENTRY(IContextMenu)
|
|
COM_INTERFACE_ENTRY(IExplorerCommand)
|
|
END_COM_MAP()
|
|
DECLARE_REGISTRY_RESOURCEID(IDR_CONTEXTMENUHANDLER)
|
|
DECLARE_NOT_AGGREGATABLE(CContextMenuHandler)
|
|
|
|
public:
|
|
CContextMenuHandler();
|
|
~CContextMenuHandler();
|
|
HRESULT STDMETHODCALLTYPE Initialize(_In_opt_ PCIDLIST_ABSOLUTE pidlFolder, _In_opt_ IDataObject* pdtobj, _In_opt_ HKEY hkeyProgID);
|
|
HRESULT STDMETHODCALLTYPE QueryContextMenu(_In_ HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
|
|
HRESULT STDMETHODCALLTYPE GetCommandString(UINT_PTR idCmd, UINT uType, _In_ UINT* pReserved, LPSTR pszName, UINT cchMax);
|
|
HRESULT STDMETHODCALLTYPE InvokeCommand(_In_ CMINVOKECOMMANDINFO* pici);
|
|
|
|
// Inherited via IExplorerCommand
|
|
virtual HRESULT __stdcall GetTitle(IShellItemArray* psiItemArray, LPWSTR* ppszName) override;
|
|
virtual HRESULT __stdcall GetIcon(IShellItemArray* psiItemArray, LPWSTR* ppszIcon) override;
|
|
virtual HRESULT __stdcall GetToolTip(IShellItemArray* psiItemArray, LPWSTR* ppszInfotip) override;
|
|
virtual HRESULT __stdcall GetCanonicalName(GUID* pguidCommandName) override;
|
|
virtual HRESULT __stdcall GetState(IShellItemArray* psiItemArray, BOOL fOkToBeSlow, EXPCMDSTATE* pCmdState) override;
|
|
virtual HRESULT __stdcall Invoke(IShellItemArray* psiItemArray, IBindCtx* pbc) override;
|
|
virtual HRESULT __stdcall GetFlags(EXPCMDFLAGS* pFlags) override;
|
|
virtual HRESULT __stdcall EnumSubCommands(IEnumExplorerCommand** ppEnum) override;
|
|
|
|
private:
|
|
void Uninitialize();
|
|
HRESULT ResizePictures(CMINVOKECOMMANDINFO* pici, IShellItemArray* psiItemArray);
|
|
PCIDLIST_ABSOLUTE m_pidlFolder;
|
|
IDataObject* m_pdtobj;
|
|
HBITMAP m_hbmpIcon = nullptr;
|
|
std::wstring app_name;
|
|
};
|
|
|
|
OBJECT_ENTRY_AUTO(__uuidof(ContextMenuHandler), CContextMenuHandler) |