Windows: Build afs_shl_ext.dll with talocaleU.lib
[openafs.git] / src / WINNT / client_exp / shell_ext.h
index edfc60d..9e0a9c7 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * 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
@@ -24,7 +24,10 @@ extern ULONG nICRefCount;    // IContextMenu ref count
 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")
 
 /////////////////////////////////////////////////////////////////////////////
@@ -32,57 +35,58 @@ extern ULONG nXPRefCount;   // IPersistFile ref count
 
 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
@@ -96,21 +100,35 @@ protected:
         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)
 };
 
 /////////////////////////////////////////////////////////////////////////////