L_GetFilterListInfo

#include "l_bitmap.h"

L_LTFIL_API L_INT L_GetFilterListInfo(ppFilterList, pFilterCount)

pFILTERINFO* ppFilterList;

/* pointer to a pointer to a FILTERINFO structure */

L_UINT* pFilterCount;

/* pointer to a variable to be updated */

Retrieves an array of information for all filters.

Parameter

Description

ppFilterList

Pointer to a pointer to a FILTERINFO structure that represents an array of information for all filters. The address of this structure will be stored into *ppFilterList. This parameter cannot be NULL.

pFilterCount

Pointer to a variable to be updated with the number of elements of ppFilterList array.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

The function will allocate a FILTERINFO structure large enough to contain the information of all filters.

When the array ppFilterList is no longer needed, the user is responsible to free this structure by calling the L_FreeFilterInfo(*ppFilterList, *pFilterCount, FILTERINFO_FREEALL) function

To obtain the information for a specific filter, call the L_GetFilterListInfo function.

To update the information of a specific filter, call L_SetFilterInfo function.

To update the filter extension list, be sure to save and restore the original filter list before calling L_FreeFilterInfo function.

Required DLLs and Libraries

LTFIL

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

Platforms

Windows 2000 / XP/Vista, Windows CE.

See Also

Functions:

L_GetFilterInfo, L_FreeFilterInfo, L_SetFilterInfo, L_FileInfo

Topics:

Raster Image Functions: Loading Files

 

Raster Image Functions: Getting and Setting File Information

 

Loading and Saving Images

Example

// This example changes the extension list for the second filter in the list. // LEADTOOLS uses this filter only if the file extension is in the extension list that associated with the filter.

L_INT GetFilterListInfoExample(L_VOID)
{
   pFILTERINFO pFilterList;
   L_UINT uFilterCount;
   L_TCHAR* pszOrigExtensionList;
   L_INT nRet;

   nRet =L_GetFilterListInfo(&pFilterList, &uFilterCount);
   if(nRet !=SUCCESS)
      return nRet;

   // Save the original extension list so you can free it later
   pszOrigExtensionList = pFilterList[2].pszExtensionList;

   //Designate files with extension abc or cba as type 2
   pFilterList[2].pszExtensionList = L_TEXT("abc,cba");
   
   // Remove the FILTERINFO_CHECKEDBYFILEINFO flag. This will make the
   // L_FileInfo function checks for this filter only if the extension is in the extension list that have been set above
   pFilterList[2].uFlags = pFilterList[2].uFlags & ~FILTERINFO_CHECKEDBYFILEINFO;

   // Update the filter information. Note: This will affect all threads!
   nRet =L_SetFilterInfo(&pFilterList[2], 1, 0);
   if(nRet !=SUCCESS)
      return nRet;

   // Restore the original extension list
   pFilterList[2].pszExtensionList = pszOrigExtensionList;

   // Free the pFilterList array that was allocated with L_GetFilterListInfo
   nRet =L_FreeFilterInfo(pFilterList, uFilterCount, FILTERINFO_FREEALL);
   if(nRet !=SUCCESS)
      return nRet;
   
   return SUCCESS;
}