mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
3.7 KiB
126 lines
3.7 KiB
/**********************************************************************
|
|
* FontFldr.h - Definition for the CFontFolder, our implementation for
|
|
* the IShellFolder in our browser.
|
|
*
|
|
**********************************************************************/
|
|
|
|
#if !defined(__FONTFLDR_H__)
|
|
#define __FONTFLDR_H__
|
|
|
|
// Forward declarations --------------------------------------------------
|
|
//
|
|
#if defined(__FCN__)
|
|
#include "fsnotify.h" // for NOTIFYWATCH
|
|
#endif
|
|
|
|
#if !defined(__VIEWVECT_H__)
|
|
#include "viewvect.h"
|
|
#endif
|
|
|
|
class CFontList;
|
|
class CFontView;
|
|
|
|
// ********************************************************************
|
|
class CFontFolder : public IShellFolder, public IPersistFolder
|
|
{
|
|
public:
|
|
CFontFolder();
|
|
~CFontFolder();
|
|
int Init();
|
|
|
|
// Utility functions.
|
|
//
|
|
CFontList * poFontList ( );
|
|
BOOL bRefresh( );
|
|
BOOL bRefView( CFontView * poView );
|
|
BOOL bReleaseView( CFontView * poView );
|
|
|
|
#if defined(__FCN__)
|
|
VOID vReconcileFolder( ); // Launch a thread to call vDoReconcileFolder
|
|
VOID vDoReconcileFolder( );
|
|
#endif
|
|
|
|
// *** IUnknown methods ***
|
|
|
|
STDMETHODIMP QueryInterface( REFIID riid, LPVOID FAR* ppvObj );
|
|
STDMETHODIMP_(ULONG) AddRef( void );
|
|
STDMETHODIMP_(ULONG) Release( void );
|
|
|
|
// *** IShellFolder methods ***
|
|
|
|
STDMETHODIMP ParseDisplayName ( HWND hwndOwner,
|
|
LPBC pbc,
|
|
LPOLESTR lpszDisplayName,
|
|
ULONG * pchEaten,
|
|
LPITEMIDLIST * ppidl,
|
|
ULONG *pdwAttributes) ;
|
|
|
|
STDMETHODIMP EnumObjects( HWND hwndOwner,
|
|
DWORD grfFlags,
|
|
LPENUMIDLIST * ppenumIDList) ;
|
|
|
|
STDMETHODIMP BindToObject( LPCITEMIDLIST pidl,
|
|
LPBC pbcReserved,
|
|
REFIID riid,
|
|
LPVOID * ppvOut) ;
|
|
|
|
STDMETHODIMP BindToStorage( LPCITEMIDLIST pidl,
|
|
LPBC pbcReserved,
|
|
REFIID riid,
|
|
LPVOID * ppvObj) ;
|
|
|
|
STDMETHODIMP CompareIDs( LPARAM lParam,
|
|
LPCITEMIDLIST pidl1,
|
|
LPCITEMIDLIST pidl2) ;
|
|
|
|
STDMETHODIMP CreateViewObject( HWND hwndOwner,
|
|
REFIID riid,
|
|
LPVOID * ppvOut) ;
|
|
|
|
STDMETHODIMP GetAttributesOf( UINT cidl,
|
|
LPCITEMIDLIST * apidl,
|
|
ULONG * rgfInOut) ;
|
|
|
|
STDMETHODIMP GetUIObjectOf( HWND hwndOwner,
|
|
UINT cidl,
|
|
LPCITEMIDLIST * apidl,
|
|
REFIID riid,
|
|
UINT * prgfInOut,
|
|
LPVOID * ppvOut) ;
|
|
|
|
STDMETHODIMP GetDisplayNameOf( LPCITEMIDLIST pidl,
|
|
DWORD uFlags,
|
|
LPSTRRET lpName) ;
|
|
|
|
STDMETHODIMP SetNameOf( HWND hwndOwner,
|
|
LPCITEMIDLIST pidl,
|
|
LPCOLESTR lpszName,
|
|
DWORD uFlags,
|
|
LPITEMIDLIST * ppidlOut) ;
|
|
|
|
|
|
// *** IPersist methods ***
|
|
|
|
STDMETHODIMP GetClassID( LPCLSID lpClassID );
|
|
|
|
// *** IPersistFolder methods ***
|
|
|
|
STDMETHODIMP Initialize( LPCITEMIDLIST pidl );
|
|
|
|
|
|
private:
|
|
static int sm_id;
|
|
int m_id;
|
|
int m_cRef;
|
|
|
|
#if defined(__FCN__)
|
|
NOTIFYWATCH m_Notify;
|
|
HANDLE m_hNotifyThread;
|
|
#endif
|
|
|
|
CViewVector * m_poViewList;
|
|
|
|
};
|
|
|
|
#endif // __FONTFLDR_H__
|
|
|