IFilter::Init

[This is preliminary documentation and subject to change.]

SCODE IFilter::Init( ULONG grfFlags,
                     ULONG cAttributes,
                     FULLPROPSPEC const * aAttributes,
                     DWORD * pdwFlags );
 

This method is called to initialize the filtering session. If the interface is successfully initialized then calls to other IFilter functions may be made. Once a successful call has been made to Init the object must appear frozen from the point of view of the caller. The object is frozen until the filter object is released.

Multiple calls to Init reset the state of the filter object. The filter is re-positioned to the beginning of the object and the object state is frozen. Chunk identifiers must remain consistent across multiple calls to Init with the same parameters.

grfFlags is a group of flags taken from the enumeration IFILTER_INIT. They control text canonicalization, attribute output, embedding scope and IFilter access patterns.

typedef enum tagIFILTER_INIT
{
    IFILTER_INIT_CANON_PARAGRAPHS         = 1,
    IFILTER_INIT_HARD_LINE_BREAKS         = 2,
    IFILTER_INIT_CANON_HYPHENS            = 4,
    IFILTER_INIT_CANON_SPACES             = 8,
 
    IFILTER_INIT_APPLY_INDEX_ATTRIBUTES        = 16,
    IFILTER_INIT_APPLY_OTHER_ATTRIBUTES        = 32,
    IFILTER_INIT_INDEXING_ONLY                 = 64,
 
    IFILTER_INIT_SEARCH_LINKS            = 128
} IFILTER_INIT;
 
typedef enum tagIFILTER_FLAGS
{
    IFILTER_FLAGS_OLE_PROPERTIES                 = 1
} IFILTER_FLAGS;