📄 copyfilename.h
字号:
// CopyFileName.h : Declaration of the CCopyFileName
#pragma once
#include "resource.h" // main symbols
#include <comdef.h>
#include <shlobj.h>
#include <shlguid.h>
#include <string>
#include <list>
typedef std::list<std::basic_string<TCHAR> > string_list;
// ICopyFileName
[
object,
uuid("91530F96-C3BE-4C62-8335-92D2F1327B83"),
dual, helpstring("ICopyFileName Interface"),
pointer_default(unique)
]
__interface ICopyFileName : IDispatch
{
};
// CCopyFileName
[
coclass,
threading("apartment"),
vi_progid("ShellExt2.CopyFileName"),
progid("ShellExt2.CopyFileName.1"),
version(1.0),
uuid("52F96297-B319-4335-BA9D-79C4B7BE18DC"),
helpstring("CopyFileName Class")
]
class ATL_NO_VTABLE CCopyFileName :
public ICopyFileName,
public IShellExtInit,
public IContextMenu
{
public:
CCopyFileName()
{
m_hRegBmp = LoadBitmap ( _AtlBaseModule.GetResourceInstance(),
MAKEINTRESOURCE(IDB_REGISTERBMP) );
}
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CCopyFileName)
COM_INTERFACE_ENTRY(ICopyFileName)
COM_INTERFACE_ENTRY_IID(IID_IContextMenu, IContextMenu)
COM_INTERFACE_ENTRY(IShellExtInit)
END_COM_MAP()
HRESULT FinalConstruct()
{
return S_OK;
}
void FinalRelease()
{
}
public:
// IShellExtInit
STDMETHOD(Initialize)(LPCITEMIDLIST, LPDATAOBJECT, HKEY);
// IContextMenu
STDMETHOD(GetCommandString)(UINT, UINT, UINT*, LPSTR, UINT);
STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO);
STDMETHOD(QueryContextMenu)(HMENU, UINT, UINT, UINT, UINT);
protected:
string_list m_lsFiles;
HBITMAP m_hRegBmp;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -