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

Windows Kernel

Development Platform:

Visual C++

  1. //---------------------------------------------------------------------------
  2. //
  3. //  File: propsext.h
  4. //
  5. //  General definition of OLE Entry points, CClassFactory and CPropSheetExt
  6. //
  7. //  Common Code for all display property sheet extension
  8. //
  9. //  Copyright (c) Microsoft Corp.  1992-1998 All Rights Reserved
  10. //
  11. //---------------------------------------------------------------------------
  12. extern BOOL         g_RunningOnNT;
  13. extern HINSTANCE    g_hInst;
  14. extern LPDATAOBJECT g_lpdoTarget;
  15. // OLE-Registry magic number
  16. extern GUID         g_CLSID_CplExt;
  17. BOOL
  18. CALLBACK
  19. PropertySheeDlgProc(HWND hDlg, UINT uMessage, WPARAM wParam, LPARAM lParam);
  20. //Type for an object-destroyed callback
  21. typedef void (FAR PASCAL *LPFNDESTROYED)(void);
  22. class CClassFactory : public IClassFactory
  23. {
  24. protected:
  25.         ULONG m_cRef;
  26. public:
  27.         CClassFactory();
  28.         ~CClassFactory();
  29.         //IUnknown members
  30.         STDMETHODIMP         QueryInterface( REFIID, LPVOID* );
  31.         STDMETHODIMP_(ULONG) AddRef();
  32.         STDMETHODIMP_(ULONG) Release();
  33.         //IClassFactory members
  34.         STDMETHODIMP         CreateInstance( LPUNKNOWN, REFIID, LPVOID* );
  35.         STDMETHODIMP         LockServer( BOOL );
  36. };
  37. class CPropSheetExt : public IShellPropSheetExt, IShellExtInit
  38. {
  39. private:
  40.         ULONG         m_cRef;
  41.         LPUNKNOWN     m_pUnkOuter;    //Controlling unknown
  42.         LPFNDESTROYED m_pfnDestroy;   //Function closure call
  43. public:
  44.         CPropSheetExt( LPUNKNOWN pUnkOuter, LPFNDESTROYED pfnDestroy );
  45.         ~CPropSheetExt(void);
  46.         // IUnknown members
  47.         STDMETHODIMP         QueryInterface(REFIID, LPVOID*);
  48.         STDMETHODIMP_(ULONG) AddRef(void);
  49.         STDMETHODIMP_(ULONG) Release(void);
  50.         //  IShellExtInit methods
  51.         STDMETHODIMP         Initialize(LPCITEMIDLIST pIDFolder, LPDATAOBJECT pDataObj,
  52.                                         HKEY hKeyID);
  53.         //IShellPropSheetExt methods ***
  54.         STDMETHODIMP         AddPages( LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam );
  55.         STDMETHODIMP         ReplacePage(UINT uPageID, LPFNADDPROPSHEETPAGE lpfnReplaceWith,
  56.                                          LPARAM lParam);
  57. };