/*
* Copyright 2000, International Business Machines Corporation and others.
* All Rights Reserved.
- *
+ *
* This software has been released under the terms of the IBM Public
* License. For details, see the LICENSE file in the top-level source
* directory or online at http://www.openafs.org/dl/license10.html
extern ULONG nTPRefCount; // IQueryInfo ref count
extern ULONG nXPRefCount; // IPersistFile ref count
-#define STR_EXT_TITLE TEXT("AfsClientContextMenu")
+#define _STR_EXT_TITLE "AfsClientContextMenu"
+#define _STR_EXT_TITLE2 "AfsClientOverlayHandler"
+#define STR_EXT_TITLE TEXT(_STR_EXT_TITLE)
+#define STR_EXT_TITLE2 TEXT(_STR_EXT_TITLE2)
#define STR_REG_PATH TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ShellIconOverlayIdentifiers")
/////////////////////////////////////////////////////////////////////////////
class CShellExt : public CCmdTarget
{
- DECLARE_DYNCREATE(CShellExt)
+ DECLARE_DYNCREATE(CShellExt)
- BOOL m_bDirSelected;
- BOOL m_bIsSymlink; // is symbolic link!
- TCHAR m_szFile[MAX_PATH];
- BOOL m_bIsOverlayEnabled;
- BOOL IsOverlayEnabled(){return m_bIsOverlayEnabled;}
+ BOOL m_bDirSelected;
+ BOOL m_bIsSymlink; // is symbolic link!
+ TCHAR m_szFile[MAX_PATH];
+ BOOL m_bIsOverlayEnabled;
+ int m_overlayObject;
+ BOOL IsOverlayEnabled(){return m_bIsOverlayEnabled;}
CStringArray m_astrFileNames;
- CShellExt(); // protected constructor used by dynamic creation
- LPMALLOC m_pAlloc;
+ CShellExt(); // protected constructor used by dynamic creation
+ LPMALLOC m_pAlloc;
// Attributes
public:
// Operations
public:
-
+ int GetOverlayObject() {return m_overlayObject;}
// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CShellExt)
- public:
- virtual void OnFinalRelease();
- //}}AFX_VIRTUAL
+ // ClassWizard generated virtual function overrides
+ //{{AFX_VIRTUAL(CShellExt)
+ public:
+ virtual void OnFinalRelease();
+ //}}AFX_VIRTUAL
// Implementation
protected:
- virtual ~CShellExt();
-
- // Generated message map functions
- //{{AFX_MSG(CShellExt)
- // NOTE - the ClassWizard will add and remove member functions here.
- //}}AFX_MSG
-
- DECLARE_MESSAGE_MAP()
- // Generated OLE dispatch map functions
- //{{AFX_DISPATCH(CShellExt)
- // NOTE - the ClassWizard will add and remove member functions here.
- //}}AFX_DISPATCH
- DECLARE_DISPATCH_MAP()
-
- DECLARE_OLECREATE(CShellExt)
-
+ virtual ~CShellExt();
+
+ // Generated message map functions
+ //{{AFX_MSG(CShellExt)
+ // NOTE - the ClassWizard will add and remove member functions here.
+ //}}AFX_MSG
+
+ DECLARE_MESSAGE_MAP()
+ // Generated OLE dispatch map functions
+ //{{AFX_DISPATCH(CShellExt)
+ // NOTE - the ClassWizard will add and remove member functions here.
+ //}}AFX_DISPATCH
+ DECLARE_DISPATCH_MAP()
+
+ DECLARE_OLECREATE(CShellExt)
+
// IFileViewer interface
BEGIN_INTERFACE_PART(MenuExt, IContextMenu)
- STDMETHOD(QueryContextMenu)( HMENU hmenu,UINT indexMenu,UINT idCmdFirst,
- UINT idCmdLast,UINT uFlags);
+ STDMETHOD(QueryContextMenu)( HMENU hmenu,UINT indexMenu,UINT idCmdFirst,
+ UINT idCmdLast,UINT uFlags);
STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO lpici);
STDMETHOD(GetCommandString)(UINT_PTR idCmd,UINT uType,UINT* pwReserved,LPSTR pszName,
- UINT cchMax);
+ UINT cchMax);
END_INTERFACE_PART(MenuExt)
// IShellExtInit interface
STDMETHOD(IsMemberOf)(LPCWSTR pwszPath,DWORD dwAttrib);
END_INTERFACE_PART(IconExt)
- BEGIN_INTERFACE_PART(ToolTipExt, IQueryInfo)
- STDMETHOD(GetInfoTip)(DWORD dwFlags, LPWSTR *ppwszTip);
- STDMETHOD(GetInfoFlags)(LPDWORD pdwFlags);
+ BEGIN_INTERFACE_PART(ToolTipExt, IQueryInfo)
+ STDMETHOD(GetInfoTip)(DWORD dwFlags, LPWSTR *ppwszTip);
+ STDMETHOD(GetInfoFlags)(LPDWORD pdwFlags);
END_INTERFACE_PART(ToolTipExt)
- BEGIN_INTERFACE_PART(PersistFileExt, IPersistFile)
- STDMETHOD(Load)(LPCOLESTR wszFile, DWORD dwMode);
- STDMETHOD(GetClassID)(LPCLSID);
- STDMETHOD(IsDirty)(VOID);
- STDMETHOD(Save)(LPCOLESTR, BOOL);
- STDMETHOD(SaveCompleted)(LPCOLESTR);
- STDMETHOD(GetCurFile)(LPOLESTR FAR*);
+ BEGIN_INTERFACE_PART(PersistFileExt, IPersistFile)
+ STDMETHOD(Load)(LPCOLESTR wszFile, DWORD dwMode);
+ STDMETHOD(GetClassID)(LPCLSID);
+ STDMETHOD(IsDirty)(VOID);
+ STDMETHOD(Save)(LPCOLESTR, BOOL);
+ STDMETHOD(SaveCompleted)(LPCOLESTR);
+ STDMETHOD(GetCurFile)(LPOLESTR FAR*);
END_INTERFACE_PART(PersistFileExt)
- DECLARE_INTERFACE_MAP()
+ DECLARE_INTERFACE_MAP()
+};
+
+class CShellExt2 : public CShellExt
+{
+public:
+ DECLARE_DYNCREATE(CShellExt2)
+ CShellExt2() : CShellExt()
+ {
+ m_overlayObject = 1;
+ }
+ ~CShellExt2()
+ {
+ }
+ DECLARE_OLECREATE(CShellExt2)
};
/////////////////////////////////////////////////////////////////////////////