[This is preliminary documentation and subject to change.]
An IFilter object is initialized by calling IFilter::Init(). Init() takes four parameters, grfFlags, cAttributes, aAttributes and pdwFlags. The user of the IFilter Test Suite can specify the values for these parameters in a file called ifilttst.ini. Page 6 shows a sample ifilttst.ini file.
The file is broken up into sections, with the section name enclosed in square brackets. In the example, the sections are named Test1, Test2, etc.. All section names must be unique. The test reads the values from the first section and initialize the filter with them. Then it runs all of its tests using this filter configuration. It then releases the filter and reinitializes it, using parameters from the next section. It repeats the process until there are no more configurations left to test.
Each section contains a complete description of the parameters for IFilter::Init(). The parameters are described in separate fields, called entries. The entries are described on the next page.
Entry | Value of entry |
---|---|
Flags | the names of the IFILTER_INIT flags that are to be OR'ed together to form the grfFlags parameter. They must be in all caps, and they must all be on the same line. |
Cattributes | A decimal integer representing the value of the cAttributes parameter. |
Aattributes | The name of this entry must start with "aAttributes" and must be different from the other aAttributes entries within the section. Legal names for the aAttributes entry are: aAttributes, aAttributes1, aAttributes2, etc. The first token must be a GUID. The GUID must be formatted exactly as shown in section [Test3]. The second token may be either a propid (consisting of a number in hexadecimal notation) or a lpwstr (a pointer to a wide character string). A lpwstr can be specified by enclosing the string in double quotes (see section [Test6]). |
If the Flags and cAttributes entries are not specified, they default to zero. If you set cAttributes equal to 2, you usually want to specify 2 aAttributes; however, you do not have to. In section [Test5], cAttributes is 1, but no aAttributes have been specified. The test then calls IFilter::Init() with cAttributes equal to 1, and aAttributes equal to NULL. This is a useful test case, since it is likely to cause an access violation in IFilter::Init().
There is no entry for the pdwFlags parameter since this parameter is used solely to return a value to the caller; it does not need to have any special value prior to the call to Init().
If ifilttst.exe cannot find a file named ifilttst.ini in the present working directory, it uses a default configuration to initialize the filter object. Below is the default configuration:
[default]
grfFlags = IFILTER_INIT_APPLY_INDEX_ATTRIBUTES
cAttributes = 0