⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 copyfilename.h

📁 这是一本学习 window编程的很好的参考教材
💻 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 + -