Persistent Handlers Registered for a Class


Indexing Service is no longer supported as of Windows XP and is unavailable for use as of Windows 8. Instead, use Windows Search for client side search and Microsoft Search Server Express for server side search.


The following is an example of the registry entry for a persistent handler registered for a class.

        = REG_SZ SampleFile
        = REG_SZ Class for Sample Files
           = REG_SZ {40A45370-0386-11D0-AE19-00AA004B9986}
           = REG_SZ Sample Files
              = REG_SZ sample.dll
               = REG_SZ {A6317C60-0386-11D0-AE19-00AA004B9986}
           = REG_SZ Sample file persistent handler
                 = REG_SZ {D7455400-0386-11D0-AE19-00AA004B9986}
           = REG_SZ Sample files
              = REG_SZ sampfilt.dll
              ThreadingModel = Apartment

Up through the entry for the class (CLSID\{40A45370-0386-11D0-AE19-00AA004B9986}), these entries are standard OLE registry entries. The DLL sample.dll implements running object behavior for the .sam class. But note the extra entry, PersistentHandler. This entry specifies the class responsible for brokering requests to the persistent objects of the sample class. The entry under PersistentAddinsRegistered identifies the implementation responsible for the interface named 89BCB740-6119-101A-BCB7-00DD010655AF (IID_IFilter). Finally, we come to the class implementing IID_IFilter and again, the entries are standard OLE registry entries. The InprocServer32 DLL is loaded through the standard OLE mechanism. Indexing Service observes the threading model specified for the filter. When the threading model is set to "Both," the filter must be thread safe. If the filter is not thread safe, specify "Apartment."