Source code of Windows XP (NT5)
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.

49 lines
1.3 KiB

  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_