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.

93 lines
2.4 KiB

  1. /*
  2. * Registry Association Management
  3. *
  4. * HTREGMNG.H
  5. *
  6. * Copyright (c) 1995 Microsoft Inc.
  7. *
  8. */
  9. #ifndef HTREGMNG_H
  10. #define HTREGMNG_H
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14. /*
  15. * Registry Management Structures
  16. *
  17. * We need a way to specify a set of registry entries to
  18. * represent an association. We can then test and
  19. * set the registry appropriately to restore associations
  20. * as needed
  21. *
  22. */
  23. typedef enum
  24. {
  25. RC_ADD,
  26. RC_RUNDLL,
  27. RC_DEL, // Remove key
  28. RC_CALLBACK
  29. } REGCMD;
  30. // Flags for RegEntry
  31. #define REF_NORMAL 0x00000000 // Required and forcefully set
  32. #define REF_NOTNEEDED 0x00000001 // Ignored during checks
  33. #define REF_IFEMPTY 0x00000002 // Set only if value/key is empty
  34. #define REF_DONTINTRUDE 0x00000004 // Don't intrude at setup time
  35. #define REF_NUKE 0x00000008 // Remove a key, regardless of the subkeys/values
  36. #define REF_PRUNE 0x00000010 // Walk up this path and remove empty keys
  37. #define REF_EDITFLAGS 0x00000020 // Remove edit flags only if the rest of the tree is empty
  38. // NOTE: these structures are deliberately CHAR, not TCHAR, so we don't
  39. // have to mess with the TEXT macro in all the tables.
  40. typedef struct _RegEntry {
  41. REGCMD regcmd; // Special Handling
  42. DWORD dwFlags; // REF_*
  43. HKEY hkeyRoot; // Root key
  44. LPCSTR pszKey; // Key Name
  45. LPCSTR pszValName; // Value Name
  46. DWORD dwType; // Value Type
  47. union
  48. {
  49. LPARAM lParam; // lParam
  50. DWORD dwSize; // Value Size (in bytes)
  51. }DUMMYUNIONNAME;
  52. VOID const * pvValue; // Value
  53. } RegEntry;
  54. typedef RegEntry RegList[];
  55. typedef struct _RegSet {
  56. DWORD cre; // Count of entries
  57. const RegEntry * pre;
  58. } RegSet;
  59. #define IEA_NORMAL 0x00000001 // Only install IE assoc. if IE is currently owner.
  60. #define IEA_FORCEIE 0x00000002 // Force IE to take over associations
  61. HRESULT InstallIEAssociations(DWORD dwFlags); // IEA_* flags
  62. HRESULT UninstallPlatformRegItems(BOOL bIntegrated);
  63. void UninstallCurrentPlatformRegItems();
  64. BOOL IsCheckAssociationsOn();
  65. void SetCheckAssociations( BOOL );
  66. BOOL GetIEPath(LPSTR szPath, DWORD cch);
  67. BOOL IsIEDefaultBrowser(void);
  68. BOOL IsIEDefaultBrowserQuick(void);
  69. HRESULT ResetWebSettings(HWND hwnd, BOOL *pfChangedHomePage);
  70. extern const TCHAR c_szCLSID[];
  71. #ifdef __cplusplus
  72. };
  73. #endif
  74. #endif /* HTREGMNG_H */