Finding the Filter DLL for a File

Platform SDK: Indexing Service
Finding the Filter DLL for a File

The following example, for HTML files, shows how to find the filter DLL for a document.

Determine the persistent handler registered for an extension. Check to see whether the extension for the type of files that the DLL filters has a persistent handler registered under the registry entry /HKEY_LOCAL_MACHINE/SOFTWARE/Classes. Let this be <Value1>.

/HKEY_LOCAL_MACHINE/SOFTWARE/Classes
    .htm
        PersistentHandler
            {EEC97550-47A9-11CF-B952-00AA0051FE20}

If this entry exists, skip to step 4 and use <Value1> there.

Alternatively, determine the CLSID. If there is not a persistent handler registered for the extension, find the CLSID associated with the document type under the registry entry /HKEY_LOCAL_MACHINE/SOFTWARE/Classes. Let this be <Value2>.

/HKEY_LOCAL_MACHINE/SOFTWARE/Classes
    htmlfile
        = Class for WWW HTML files
        CLSID
            = {25336920-03F9-11CF-8FD0-00AA00686F13}

Determine the persistent handler. Using <Value2>determined in Step 2, find the PersistentHandler value for the /HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/<Value2> entry. Let this be <Value3>.

/HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID
        {25336920-03F9-11CF-8FD0-00AA00686F13}
            = WWW HTML files
            PersistentHandler
                = {EEC97550-47A9-11CF-B952-00AA0051FE20}

Determine the IFilter persistent handler GUID. Using <Value1> determined in Step 1 or <Value3> determined in Step 3, find the IFilter Persistent Handler GUID for the document type. The value under the registry entry
/HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/<Value1 or 3>/PersistentAddinsRegistered/
89BCB740-6119-101A-BCB7-00DD010655AF yields the IFilter Persistent Handler GUID for this document type. Let this be <Value4>. 89BCB740-6119-101A-BCB7-00DD010655AF is the IFilter interface GUID.

/HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID
        {EEC97550-47A9-11CF-B952-00AA0051FE20}
             = REG_SZ HTML File Persistent Handler
        PersistentAddinsRegistered
             {89BCB740-6119-101A-BCB7-00DD010655AF}
                 = REG_SZ {E0CA5340-4534-11CF-B952-00AA0051FE20}

Determine the filter DLL. Using <Value4> determined in Step 4, the filter DLL can be found under the entry
/HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID/<Value4>/InprocServer32.

/HKEY_LOCAL_MACHINE/SOFTWARE/Classes/CLSID
     {E0CA5340-4534-11CF-B952-00AA0051FE20}
        = REG_SZ HTML Filter
        InprocServer32
            = REG_SZ nlhtml.dll

In this example, the filter DLL for HTML documents is nlhtml.dll.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章