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.

62 lines
1.6 KiB

  1. #pragma once
  2. extern "C"
  3. {
  4. #include <shimdb.h>
  5. }
  6. #include "tstr.hxx"
  7. struct sExtensionItem
  8. {
  9. TSTR strName;
  10. BOOL bExists;
  11. sExtensionItem *pNext;
  12. };
  13. class CExtensionList
  14. {
  15. private:
  16. DWORD m_dwNumberofItems;
  17. sExtensionItem *m_pRoot;
  18. BOOL m_bUseIndicatorFile;
  19. BOOL m_bIndicatorFileExists;
  20. sExtensionItem *RetrieveItem( DWORD dwIndex );
  21. public:
  22. CExtensionList();
  23. ~CExtensionList();
  24. BOOL AddItem( LPTSTR szPath, BOOL bExists );
  25. DWORD QueryNumberofItems();
  26. BOOL QueryItem( DWORD dwIndex, TSTR *pstrPath, LPBOOL pbExists);
  27. BOOL DoesAnItemExist();
  28. BOOL SetIndicatorFile( LPTSTR szIndicatorFile );
  29. };
  30. BOOL ProcessIISShims();
  31. BOOL ProcessAppCompatDB( PDB hCompatDB );
  32. BOOL ProcessExeTag( PDB hCompatDB, TAGID tagExe );
  33. BOOL ProcessShimTag( PDB hCompatDB, TAGID tagShim );
  34. BOOL GetBasePath( TSTR_PATH *pstrBasePath, PDB hCompatDB, TAGID tagShim );
  35. BOOL GetBasePathFromRegistry( TSTR_PATH *pstrBasePath, TSTR &strFullRegPath );
  36. BOOL RetrieveRegistryString( TSTR_PATH *pstrValue,
  37. TSTR &strRegBase,
  38. TSTR &strRegPath,
  39. TSTR &strRegName );
  40. BOOL BuildExtensionList( PDB hCompatDB,
  41. TAGID tagShim,
  42. LPTSTR szBasePath,
  43. CExtensionList *pExtensions );
  44. BOOL InstallAppInMB( PDB hCompatDB, TAGID tagShim, CExtensionList &ExtensionList );
  45. BOOL IsIISShim( PDB hCompatDB, TAGID tagCurrentTag );
  46. BOOL GetValueFromName( TSTR *pstrValue, PDB hCompatDB, TAGID tagData, LPCTSTR szTagName );