| OLD | NEW | 
|---|
| 1 <?xml version="1.0"?> | 1 <?xml version="1.0"?> | 
| 2 <Include xmlns="http://schemas.microsoft.com/wix/2006/wi"> | 2 <Include xmlns="http://schemas.microsoft.com/wix/2006/wi"> | 
| 3     <!-- | 3     <!-- | 
| 4         We're using a minimal registration model, with only the keys needed to e
    nable function as a BHO. | 4         We're using a minimal registration model, with only the keys needed to e
    nable function as a BHO. | 
| 5         Notably missing: | 5         Notably missing: | 
| 6             - LocalServer32. | 6             - LocalServer32. | 
| 7               This is for out-of-process servers; a BHO is only an in-process on
    e. | 7               This is for out-of-process servers; a BHO is only an in-process on
    e. | 
| 8               Even though we're _also_ using an out-of-process server, there's n
    ot one in the BHO DLL. | 8               Even though we're _also_ using an out-of-process server, there's n
    ot one in the BHO DLL. | 
| 9             - AppID | 9             - AppID | 
| 10               Needed for custom permissions, authentication, and generally for d
    iscoverable services. | 10               Needed for custom permissions, authentication, and generally for d
    iscoverable services. | 
| 11               The DLL registers as a BHO directly by CLSID, without going throug
    h an AppId | 11               The DLL registers as a BHO directly by CLSID, without going throug
    h an AppId | 
| 12             - ProgID | 12             - ProgID | 
| 13               A string alias for a CLSID. | 13               A string alias for a CLSID. | 
| 14               Again, the BHO registration is by CLSID; no need for an alias. | 14               Again, the BHO registration is by CLSID; no need for an alias. | 
| 15             - All the typelib entries. | 15             - All the typelib entries. | 
| 16               These enable a dynamic languages to bind to the DLL, but IE doesn'
    t need this. | 16               These enable a dynamic languages to bind to the DLL, but IE doesn'
    t need this. | 
| 17             - The attribute "Class/@Programmable". | 17             - The attribute "Class/@Programmable". | 
| 18               It's used with ActiveX, which a BHO doesn't need. | 18               It's used with ActiveX, which a BHO doesn't need. | 
| 19         References: | 19         References: | 
| 20             Minimal COM object registration  http://blogs.msdn.com/b/larryosterm
    an/archive/2006/01/05/509731.aspx | 20             Minimal COM object registration  http://blogs.msdn.com/b/larryosterm
    an/archive/2006/01/05/509731.aspx | 
| 21             COM and Registry  http://mariusbancila.ro/blog/2010/06/01/com-and-re
    gistry/ | 21             COM and Registry  http://mariusbancila.ro/blog/2010/06/01/com-and-re
    gistry/ | 
| 22     --> | 22     --> | 
| 23     <!-- | 23     <!-- | 
| 24         The value "both" for ThreadingModel comes from the output of 'heat' on t
    he compiled DLL. | 24         The value "both" for ThreadingModel comes from the output of 'heat' on t
    he compiled DLL. | 
| 25     --> | 25     --> | 
| 26     <Class Id="{FFCB3198-32F3-4E8B-9539-4324694ED664}" | 26     <Class Id="{FFCB3198-32F3-4E8B-9539-4324694ED664}" | 
| 27         Description="Adblock Plus for IE Browser Helper Object" | 27         Description="Adblock Plus for IE Browser Helper Object" | 
| 28         Context="InprocServer32" ThreadingModel="both"/> | 28         Context="InprocServer32" ThreadingModel="both"/> | 
| 29 </Include> | 29 </Include> | 
| OLD | NEW | 
|---|