你的位置:首页 > 软件开发 > 操作系统 > Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COM

Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COM

发布时间:2016-09-09 19:00:15
创建图标标记 Handlers (续) 1、新建一个ATL Project。2、建议将 Project Property 中 Linker – General - “Register Output” 设为 no,C/ ...

Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COM

创建图标标记 Handlers (续)

 

1、新建一个ATL Project。

Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COM

2、建议将 Project Property 中 Linker – General - “Register Output” 设为 no,C/C++ - “Code Generation” - “Runtime Library” 设为 /MTd。

Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COM

Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COM

3、在 Solution Explorer 中右键 Add Class,选择 ATL Simple Object。并在弹出的对话框中为该 Class 命名。

Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COM

Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COM

4、添加完成后建议 Build 一下 Project,MIDL compiler 将根据 .idl 文件生成 IIDs and CLSIDs。

Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COM

5、切换到新增 Class 的 .h 文件中,使其继承接口 IShellIconOverlayIdentifier。

Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COM

Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COM

Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COM

Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COM

Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COMCreating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COM
 1 // MyOverlay.h : Declaration of the CMyOverlay 2  3 #pragma once 4 #include "resource.h"    // main symbols 5  6  7  8 #include "Example_i.h" 9 #include <ShlObj.h>10 11 12 13 #if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)14 #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."15 #endif16 17 using namespace ATL;18 19 20 // CMyOverlay21 22 class ATL_NO_VTABLE CMyOverlay :23   public CComObjectRootEx<CComSingleThreadModel>,24   public CComCoClass<CMyOverlay, &CLSID_MyOverlay>,25   public IDispatchImpl<IMyOverlay, &IID_IMyOverlay, &LIBID_ExampleLib, 26   /*wMajor =*/ 1, /*wMinor =*/ 0>,27   public IShellIconOverlayIdentifier28 {29 public:30   CMyOverlay()31   {32   }33 34 DECLARE_REGISTRY_RESOURCEID(IDR_MYOVERLAY)35 36 37 BEGIN_COM_MAP(CMyOverlay)38   COM_INTERFACE_ENTRY(IMyOverlay)39   COM_INTERFACE_ENTRY(IDispatch)40   COM_INTERFACE_ENTRY(IShellIconOverlayIdentifier)41 END_COM_MAP()42 43 44 45   DECLARE_PROTECT_FINAL_CONSTRUCT()46 47 48   HRESULT FinalConstruct()49   {50     return S_OK;51   }52 53   void FinalRelease()54   {55   }56 57 public:58   STDMETHOD(IsMemberOf)(THIS_ _In_ PCWSTR pwszPath, DWORD dwAttrib);59   STDMETHOD(GetOverlayInfo)(THIS_ _Out_writes_(cchMax) PWSTR pwszIconFile,60     int cchMax, _Out_ int * pIndex, _Out_ DWORD * pdwFlags);61   STDMETHOD(GetPriority)(THIS_ _Out_ int * pIPriority);62 63 };64 65 OBJECT_ENTRY_AUTO(__uuidof(MyOverlay), CMyOverlay)

原标题:Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / Win32, VC++, Windows, DLL, ATL, COM

关键词:Windows

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录