Leaked source code of windows server 2003
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.

61 lines
1.4 KiB

  1. // ShlExt.h : Declaration of the CVSSShellExt
  2. #ifndef __VSSSHELLEXT_H_
  3. #define __VSSSHELLEXT_H_
  4. #include "resource.h" // main symbols
  5. #include <shlobj.h>
  6. /////////////////////////////////////////////////////////////////////////////
  7. // CVSSShellExt
  8. class ATL_NO_VTABLE CVSSShellExt :
  9. public CComObjectRootEx<CComSingleThreadModel>,
  10. public CComCoClass<CVSSShellExt, &CLSID_VSSShellExt>,
  11. public IShellExtInit,
  12. public IShellPropSheetExt
  13. {
  14. public:
  15. CVSSShellExt();
  16. ~CVSSShellExt();
  17. DECLARE_REGISTRY_RESOURCEID(IDR_VSSSHELLEXT)
  18. DECLARE_PROTECT_FINAL_CONSTRUCT()
  19. BEGIN_COM_MAP(CVSSShellExt)
  20. COM_INTERFACE_ENTRY(IShellExtInit)
  21. COM_INTERFACE_ENTRY(IShellPropSheetExt)
  22. END_COM_MAP()
  23. // IVSSShellExt
  24. public:
  25. // IShellExtInit Methods
  26. STDMETHOD(Initialize)
  27. (
  28. IN LPCITEMIDLIST pidlFolder,
  29. IN LPDATAOBJECT lpdobj,
  30. IN HKEY hkeyProgID
  31. );
  32. //IShellPropSheetExt methods
  33. STDMETHOD(AddPages)
  34. (
  35. IN LPFNADDPROPSHEETPAGE lpfnAddPage,
  36. IN LPARAM lParam
  37. );
  38. STDMETHOD(ReplacePage)
  39. (
  40. IN UINT uPageID,
  41. IN LPFNADDPROPSHEETPAGE lpfnReplaceWith,
  42. IN LPARAM lParam
  43. );
  44. private:
  45. PTSTR m_lpszFile;
  46. CComPtr<IDataObject> m_spiDataObject;
  47. };
  48. #endif //__VSSSHELLEXT_H_