windows-nt/Source/XPSP1/NT/shell/osshell/fontfldr/fontext/inc/fontfldr.h
2020-09-26 16:20:57 +08:00

126 lines
3.7 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**********************************************************************
* 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__