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 #endif
16
17 using namespace ATL;
18
19
20 // CMyOverlay
21
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 IShellIconOverlayIdentifier
28 {
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)