propsext.h
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 1k
Category:

Windows Kernel

Development Platform:

Visual C++

  1. //---------------------------------------------------------------------------
  2. //
  3. //      File: PROPSEXT.CPP
  4. //
  5. //      Defines the CPropSheetExt object.
  6. //
  7. //---------------------------------------------------------------------------
  8. #ifndef _PROPSEXT_H_
  9. #define _PROPSEXT_H_
  10. #include <windows.h>
  11. #include <prsht.h>
  12. #include <shlobj.h>
  13. extern BOOL g_RunningOnNT;
  14. //Type for an object-destroyed callback
  15. typedef void (FAR PASCAL *LPFNDESTROYED)(void);
  16. class CPropSheetExt : public IShellPropSheetExt
  17. {
  18. private:
  19.         ULONG           m_cRef;
  20.         LPUNKNOWN       m_pUnkOuter;    //Controlling unknown
  21.         LPFNDESTROYED   m_pfnDestroy;   //Function closure call
  22. public:
  23.         CPropSheetExt( LPUNKNOWN pUnkOuter, LPFNDESTROYED pfnDestroy );
  24.         ~CPropSheetExt(void);
  25.         // IUnknown members
  26.         STDMETHODIMP             QueryInterface(REFIID, LPVOID*);
  27.         STDMETHODIMP_(ULONG) AddRef(void);
  28.         STDMETHODIMP_(ULONG) Release(void);
  29.     // *** IShellPropSheetExt methods ***
  30.     STDMETHODIMP                AddPages( LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam );
  31.     STDMETHODIMP                ReplacePage( UINT uPageID, LPFNADDPROPSHEETPAGE lpfnReplaceWith, LPARAM lParam );
  32. };
  33. #ifndef ARRAYSIZE
  34. #define ARRAYSIZE(x) (sizeof(x)/sizeof(x[0]))
  35. #endif
  36. #endif //_PROPSEXT_H_