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.

219 lines
3.4 KiB

  1. //
  2. // Structures for GUID search code
  3. //
  4. #define GUIDKEYSEARCH_FIRST_HANDLER 0 // the first time through enumeration
  5. #define GUIDKEYSEARCH_FIRST_GUID 1 // ready to enumerate the first GUID in the handler
  6. #define GUIDKEYSEARCH_NEXT_GUID 2 // enumerating one or more GUIDs in a handler
  7. // The handler registry key is always valid in this case
  8. #define GUIDKEYSEARCH_NEXT_HANDLER 3 // ready to enumerate next handler
  9. typedef struct {
  10. LPCTSTR KeyName;
  11. REGKEY_ENUM Handlers;
  12. REGKEY_ENUM Guids;
  13. HKEY HandlerKey;
  14. DWORD State;
  15. HKEY RootKey;
  16. } GUIDKEYSEARCH, *PGUIDKEYSEARCH;
  17. //
  18. // Private routines to perform registry suppression
  19. //
  20. BOOL
  21. pIsGuidSuppressed (
  22. PCTSTR GuidStr
  23. );
  24. BOOL
  25. pProcessGuidSuppressList (
  26. VOID
  27. );
  28. BOOL
  29. pProcessFileExtensionSuppression (
  30. VOID
  31. );
  32. BOOL
  33. pProcessOleWarnings (
  34. VOID
  35. );
  36. VOID
  37. pProcessAutoSuppress (
  38. IN OUT HASHTABLE StrTab
  39. );
  40. BOOL
  41. pProcessProgIdSuppression (
  42. VOID
  43. );
  44. BOOL
  45. pProcessExplorerSuppression (
  46. VOID
  47. );
  48. BOOL
  49. pSuppressLinksToSuppressedGuids (
  50. VOID
  51. );
  52. BOOL
  53. pIsCmdLineBad (
  54. IN LPCTSTR CmdLine
  55. );
  56. BOOL
  57. pIsCmdLineBadEx (
  58. IN LPCTSTR CmdLine,
  59. OUT PBOOL IsvCmdLine OPTIONAL
  60. );
  61. VOID
  62. pSuppressProgIdWithBadCmdLine (
  63. IN HKEY ProgId,
  64. IN LPCTSTR ProgIdStr
  65. );
  66. BOOL
  67. pIsGuid (
  68. LPCTSTR Key
  69. );
  70. BOOL
  71. pIsGuidWithoutBraces (
  72. IN LPCTSTR Data
  73. );
  74. BOOL
  75. pGetFirstRegKeyThatHasGuid (
  76. OUT PGUIDKEYSEARCH EnumPtr,
  77. IN HKEY RootKey
  78. );
  79. BOOL
  80. pGetNextRegKeyThatHasGuid (
  81. IN OUT PGUIDKEYSEARCH EnumPtr
  82. );
  83. DWORD
  84. pCountGuids (
  85. IN PGUIDKEYSEARCH EnumPtr
  86. );
  87. BOOL
  88. pFillHashTableWithKeyNames (
  89. OUT HASHTABLE Table,
  90. IN HINF InfFile,
  91. IN LPCTSTR Section
  92. );
  93. BOOL
  94. pSuppressProgId (
  95. LPCTSTR ProgIdName
  96. );
  97. VOID
  98. pSuppressGuidInClsId (
  99. IN LPCTSTR Guid
  100. );
  101. VOID
  102. pAddUnsuppressedTreatAsGuid (
  103. LPCTSTR Guid,
  104. LPCTSTR TreatAsGuid
  105. );
  106. VOID
  107. pRemoveUnsuppressedTreatAsGuids (
  108. VOID
  109. );
  110. VOID
  111. pAddOleWarning (
  112. IN WORD MsgId,
  113. IN HKEY Object, OPTIONAL
  114. IN LPCTSTR KeyName
  115. );
  116. VOID
  117. pSuppressGuidIfBadCmdLine (
  118. IN HASHTABLE StrTab,
  119. IN HKEY ClsIdKey,
  120. IN LPCTSTR GuidStr
  121. );
  122. VOID
  123. pSuppressProgIdWithBadCmdLine (
  124. IN HKEY ProgId,
  125. IN LPCTSTR ProgIdStr
  126. );
  127. BOOL
  128. pSuppressGuidIfCmdLineBad (
  129. IN OUT HASHTABLE StrTab, OPTIONAL
  130. IN LPCTSTR CmdLine,
  131. IN HKEY DescriptionKey,
  132. IN LPCTSTR GuidStr OPTIONAL
  133. );
  134. VOID
  135. pAddGuidToTable (
  136. IN HASHTABLE Table,
  137. IN LPCTSTR GuidStr
  138. );
  139. BOOL
  140. pSearchSubkeyDataForBadFiles (
  141. IN OUT HASHTABLE SuppressTable,
  142. IN HKEY KeyHandle,
  143. IN LPCTSTR LastKey,
  144. IN LPCTSTR GuidStr,
  145. IN HKEY DescriptionKey
  146. );
  147. BOOL
  148. pIsCmdLineBad (
  149. IN LPCTSTR CmdLine
  150. );
  151. BOOL
  152. pFindShortName (
  153. IN LPCTSTR WhatToFind,
  154. OUT LPTSTR Buffer
  155. );
  156. BOOL
  157. pGetLongPathName (
  158. IN LPCTSTR ShortPath,
  159. OUT LPTSTR Buffer
  160. );
  161. BOOL
  162. pDefaultIconPreservation (
  163. VOID
  164. );
  165. BOOL
  166. pActiveSetupProcessing (
  167. VOID
  168. );
  169. BOOL
  170. pIsShellExKeySuppressed (
  171. IN HKEY ParentKey,
  172. IN PCTSTR ParentKeyName,
  173. IN PCTSTR SubKeyName
  174. );