120 lines
2.4 KiB
C
120 lines
2.4 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1997 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
DfsShell.h
|
||
|
|
||
|
Abstract:
|
||
|
This is the header file for Dfs Shell Extension object which implements
|
||
|
IShellIExtInit and IShellPropSheetExt.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Constancio Fernandes (ferns@qspl.stpp.soft.net) 12-Jan-1998
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
NT only.
|
||
|
--*/
|
||
|
|
||
|
|
||
|
#ifndef __DFSSHELL_H_
|
||
|
#define __DFSSHELL_H_
|
||
|
|
||
|
#include "resource.h" // main symbols
|
||
|
#include "DfsShPrp.h"
|
||
|
#include "DfsPath.h"
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CDfsShell
|
||
|
class ATL_NO_VTABLE CDfsShell :
|
||
|
public CComObjectRootEx<CComSingleThreadModel>,
|
||
|
public CComCoClass<CDfsShell, &CLSID_DfsShell>,
|
||
|
public IShellExtInit,
|
||
|
public IShellPropSheetExt
|
||
|
{
|
||
|
public:
|
||
|
CDfsShell()
|
||
|
{
|
||
|
m_lpszFile = NULL;
|
||
|
m_ppDfsAlternates = NULL;
|
||
|
m_lpszEntryPath = NULL;
|
||
|
}
|
||
|
|
||
|
~CDfsShell()
|
||
|
{
|
||
|
if (m_ppDfsAlternates)
|
||
|
{
|
||
|
for (int i = 0; NULL != m_ppDfsAlternates[i] ; i++)
|
||
|
{
|
||
|
delete m_ppDfsAlternates[i];
|
||
|
}
|
||
|
|
||
|
delete[] m_ppDfsAlternates;
|
||
|
m_ppDfsAlternates = NULL;
|
||
|
}
|
||
|
|
||
|
if (m_lpszEntryPath)
|
||
|
{
|
||
|
delete [] m_lpszEntryPath;
|
||
|
m_lpszEntryPath = NULL;
|
||
|
}
|
||
|
|
||
|
if (m_lpszFile)
|
||
|
{
|
||
|
delete [] m_lpszFile;
|
||
|
m_lpszFile = NULL;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
DECLARE_REGISTRY_RESOURCEID(IDR_DFSSHELL)
|
||
|
|
||
|
BEGIN_COM_MAP(CDfsShell)
|
||
|
COM_INTERFACE_ENTRY(IShellExtInit)
|
||
|
COM_INTERFACE_ENTRY(IShellPropSheetExt)
|
||
|
END_COM_MAP()
|
||
|
|
||
|
// IDfsShell
|
||
|
public:
|
||
|
|
||
|
|
||
|
// IShellExtInit Methods
|
||
|
|
||
|
STDMETHOD (Initialize)
|
||
|
(
|
||
|
IN LPCITEMIDLIST pidlFolder, // Points to an ITEMIDLIST structure
|
||
|
IN LPDATAOBJECT lpdobj, // Points to an IDataObject interface
|
||
|
IN HKEY hkeyProgID // Registry key for the file object or folder type
|
||
|
);
|
||
|
|
||
|
//IShellPropSheetExt methods
|
||
|
STDMETHODIMP AddPages
|
||
|
(
|
||
|
IN LPFNADDPROPSHEETPAGE lpfnAddPage,
|
||
|
IN LPARAM lParam
|
||
|
);
|
||
|
|
||
|
STDMETHODIMP ReplacePage
|
||
|
(
|
||
|
IN UINT uPageID,
|
||
|
IN LPFNADDPROPSHEETPAGE lpfnReplaceWith,
|
||
|
IN LPARAM lParam
|
||
|
);
|
||
|
|
||
|
private:
|
||
|
|
||
|
friend class CDfsShellExtProp;
|
||
|
|
||
|
LPTSTR m_lpszFile;
|
||
|
|
||
|
LPTSTR m_lpszEntryPath;
|
||
|
|
||
|
CDfsShellExtProp m_psDfsShellExtProp;
|
||
|
|
||
|
LPDFS_ALTERNATES* m_ppDfsAlternates;
|
||
|
};
|
||
|
|
||
|
#endif //__DFSSHELL_H_
|