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.

38 lines
823 B

  1. #ifndef _SHSRVOBJ_H
  2. #define _SHSRVOBJ_H
  3. #include "dpa.h"
  4. //
  5. // class to manage shell service objects
  6. //
  7. typedef struct
  8. {
  9. CLSID clsid;
  10. IOleCommandTarget* pct;
  11. }
  12. SHELLSERVICEOBJECT, *PSHELLSERVICEOBJECT;
  13. class CShellServiceObjectMgr
  14. {
  15. public:
  16. HRESULT Init();
  17. void Destroy();
  18. HRESULT LoadRegObjects();
  19. HRESULT EnableObject(const CLSID *pclsid, DWORD dwFlags);
  20. virtual ~CShellServiceObjectMgr();
  21. private:
  22. static int WINAPI DestroyItemCB(SHELLSERVICEOBJECT *psso, CShellServiceObjectMgr *pssomgr);
  23. HRESULT _LoadObject(REFCLSID rclsid, DWORD dwFlags);
  24. int _FindItemByCLSID(REFCLSID rclsid);
  25. static BOOL WINAPI EnumRegAppProc(LPCTSTR pszSubkey, LPCTSTR pszCmdLine, RRA_FLAGS fFlags, LPARAM lParam);
  26. CDSA<SHELLSERVICEOBJECT> _dsaSSO;
  27. };
  28. #endif // _SHSRVOBJ_H