@@LibrariesProcessesandThreads
<GROUP JCL>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat
<GROUP LibrariesProcessesandThreads>
<TITLE Portable Executable File Format>
<TOPICORDER 100>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.APIHooking
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE API Hooking>
<TOPICORDER 100>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.APIHooking.TJclPeMapImgHookItem
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.APIHooking>
<TITLE TJclPeMapImgHookItem>
<TOPICORDER 100>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.APIHooking.TJclPeMapImgHooks
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.APIHooking>
<TITLE TJclPeMapImgHooks>
<TOPICORDER 200>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.DelphiCBuilderSpecific
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<title Delphi/C++Builder Specific>

\ \ 

@@LibrariesProcessesandThreads.PortableExecutableFileFormat.DelphiCBuilderSpecific.TJclPeBorImage
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.DelphiCBuilderSpecific>
<TITLE TJclPeBorImage>
<TOPICORDER 100>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.DelphiCBuilderSpecific.TJclPePackageInfo
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.DelphiCBuilderSpecific>
<TITLE TJclPePackageInfo>
<TOPICORDER 200>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.DebugSection
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE Debug Section>
<TOPICORDER 300>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.DebugSection.TJclPeDebugList
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.DebugSection>
<TITLE TJclPeDebugList>
<TOPICORDER 100>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.ExportSection
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE Export Section>
<TOPICORDER 400>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.ExportSection.TJclPeExportFuncItem
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ExportSection>
<TITLE TJclPeExportFuncItem>
<TOPICORDER 100>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.ExportSection.TJclPeExportFuncList
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ExportSection>
<TITLE TJclPeExportFuncList>
<TOPICORDER 200>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.Imageaccessunderdebugger
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE Image access under debugger>
<TOPICORDER 500>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.ImportSection
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE Import Section>
<TOPICORDER 600>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.ImportSection.TJclPeImportFuncItem
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ImportSection>
<TITLE TJclPeImportFuncItem>
<TOPICORDER 100>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.ImportSection.TJclPeImportLibItem
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ImportSection>
<TITLE TJclPeImportLibItem>
<TOPICORDER 200>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.ImportSection.TJclPeImportList
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ImportSection>
<TITLE TJclPeImportList>
<TOPICORDER 300>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.MappedImageRoutines
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE Mapped Image Routines>
<TOPICORDER 700>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.MappedImageRoutines.TJclPeSectionStream
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.MappedImageRoutines>
<TITLE TJclPeSectionStream>
<TOPICORDER 100>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.Miscellaneous
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE Miscellaneous>
<TOPICORDER 800>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.Nameunmangling
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE Name unmangling>
<TOPICORDER 900>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.RelocationSection
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE Relocation Section>
<TOPICORDER 1000>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.RelocationSection.TJclPeRelocEntry
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.RelocationSection>
<TITLE TJclPeRelocEntry>
<TOPICORDER 100>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.RelocationSection.TJclPeRelocList
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.RelocationSection>
<TITLE TJclPeRelocList>
<TOPICORDER 200>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.ResourceSection
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE Resource Section>
<TOPICORDER 1100>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.ResourceSection.TJclPeResourceItem
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ResourceSection>
<TITLE TJclPeResourceItem>
<TOPICORDER 100>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.ResourceSection.TJclPeResourceList
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ResourceSection>
<TITLE TJclPeResourceList>
<TOPICORDER 200>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.ResourceSection.TJclPeResourceRawStream
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ResourceSection>
<TITLE TJclPeResourceRawStream>
<TOPICORDER 300>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.ResourceSection.TJclPeRootResourceList
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ResourceSection>
<TITLE TJclPeRootResourceList>
<TOPICORDER 400>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.SimplePEHelpers
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE Simple PE Helpers>
<TOPICORDER 1200>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.SmartNameComparison
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE Smart Name Comparison>
<TOPICORDER 1300>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.ThreadedSearch
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE Threaded Search>
<TOPICORDER 1400>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.ThreadedSearch.TJclPeNameSearch
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ThreadedSearch>
<TITLE TJclPeNameSearch>
<TOPICORDER 100>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.TJclPeImage
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE TJclPeImage>
<TOPICORDER 1500>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.TJclPeImageBaseList
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE TJclPeImageBaseList>
<TOPICORDER 1600>
--------------------------------------------------------------------------------
@@LibrariesProcessesandThreads.PortableExecutableFileFormat.TJclPeImagesCache
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
<TITLE TJclPeImagesCache>
<TOPICORDER 1700>
--------------------------------------------------------------------------------
@@TJclSmartCompOption
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SmartNameComparison>
Summary:
  TJclSmartCompOptions is a set of flags which determine how comparison of function names within the TJclPeImage module is performed. Using these options you can specify, for example, whether such a comparison should be case sensitive or not.
Description:
  TJclSmartCompOptions is a set of flags which determine how comparison of function names within the TJclPeImage module is performed. Using these options you can specify, for example, whether such a comparison should be case sensitive or not.
See also:
  PeSmartFunctionNameSame
Donator:
  Petr Vones
@@TJclSmartCompOption.scSimpleCompare
  Many Win32 dynamic link libraries export functions in two forms, one for ansi and one for unicode, and distinquish between these functions using a single letter suffix, A and W respectively. The name without this suffix is refered to as the base name. Ommiting the scSimpleCompare flag specifies that name comparison should perform the comparison based on the base name only. As such it ignores the suffix and considers, for example, CharUpper, CharUpperA and CharUpperW as the same function. If the flag is included each of these functions are considered different.
@@TJclSmartCompOption.scIgnoreCase
  Specifies that the comparison should be case insensitive. By default all comparisons are case sensitive.
@@TJclSmartCompOption
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SmartNameComparison>
<COMBINE TJclSmartCompOptions>
--------------------------------------------------------------------------------
@@PeStripFunctionAW
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SmartNameComparison>
Summary:
  Returns the base name of the supplied function name.
Description:
  Many Win32 dynamic link libraries export functions in two forms, one for ansi and
  one for unicode, and distinquish between these functions using a single letter
  suffix, A and W respectively. The name without this suffix is refered to as the
  base name. The PeStripFunctionAW accepts a function name and returns the base name,
  stripping of the suffix character if necessary.
Parameters:
  FunctionName - Name of a function as it appears in the import or export section of an image file.
Result:
  The base name of the supplied function.
See also:
  PeSmartFunctionNameSame
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeSmartFunctionNameSame
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SmartNameComparison>
Summary:
  Compares two function names.
Description:
  The PeSmartFunctionNameSame function compares two function names and returns
  whether they are equal observing the comparison rules specified through the
  options parameter.
Parameters:
  ComparedName - First function name to be compared.
  FunctionName - Second function name to be compared.
  Options - A set of options which determine how the names are compared. See TJclSmartCompOptions for more information.
Result:
  If the two function names are considered equal the function returns True, otherwise
  it returns False.
See also:
  PeStripFunctionAW
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@EJclPeImageError
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
Summary:
  Base exception class for exceptions raised by the JclPeImage module.
Description:
  EJclPeImageError is the base exception class for exception raised by the JclPeImage
  module. EJclPeImageError does not introduce any new methods or properties and
  merely serves to identify exceptions raised explicitly by the JclPeImage module.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImageBaseList
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.TJclPeImageBaseList>
Summary:
  Baseclass for list-like classes which require a TJclPeImage instance reference.
Description:
  TJclPeImageBaseList is the baseclass for all list classes in the JclPeImage module
  which require a reference to the TJclPeImage instance for which they were created.
  TJclPeImageBaseList does not introduce any new behaviours and serves merely as a
  baseclass, you'll likely never need to instantiate a TJclPeImageBaseList class
  explicitly.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImageBaseList.Create
Summary:
  Instantiates a TJclPeImageBaseList class.
Description:
  Creates an instance of the TJclPeImageBaseList class and stores the reference
  to AImage in the Image property for later use. The constructor calls the inherited
  constructor specifying True for the AOwnsObjects parameter and as such the list
  will own any objects stored in it. See TObjectList in the Delphi VCL help for
  more information. Note that the TJclPeImageBaseList does not assume ownership of
  the specified TJclPeImage instance. It merely stored a reference to it and as
  such it remains the responsibility of the caller to free that instance eventually.
Parameters:
  AImage - Reference to a TJclPeImage instance for which the class is created. The reference will be available for later use through the Image property.
See also:
  TJclPeImage
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImageBaseList.Image
Summary:
  Reference to the TJclPeImage specified during construction.
Description:
  Reference to the TJclPeImage instance for which the class was instantiated. This
  is a direct copy of the AImage parameter as specified when the constructor was
  called.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImagesCache
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.TJclPeImagesCache>
Summary:
  Cache for TJclPeImage objects.
Description:
  Provides a cache for TJclPeImage instances. The cache is used internally (though
  you can also use it outside of the module) by the JclPeImage module to prevent
  frequent loading and unloading of image files, thereby increasing performance.
  Note that the TJclPeImagesCache class is not inherently thread safe.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImagesCache.Clear
Summary:
  Clears the list of image objects
Description:
  Clears the list of image objects. Before the list is cleared all instances are
  freed first. Therefore you should make sure not to use any cached references to
  any of image objects retrieved from the cache earlier.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImagesCache.Images
Summary:
  Returns a TJclPeImage instance for the specified image file.
Description:
  The Images property returns an TJclPeImage object for the image file specified
  by the FileName index. If there is already an object for that image in the cache
  the property returns a reference to it. If there isn't an object in the cache yet
  the property creates the object first and then returns a reference to this newly
  created object. The FileName index should be the fully qualified name of the
  image file for which you need a TJclPeImage instance. If the filename is not
  fully qualified and can't be found in the usually directories (path, system etc)
  an exception is raised. Note that any references to TJclPeImage instances retrieved
  through the cache become invalid when the TJclPeImagesCache object is destroyed
  or when it's Clear method is called.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImagesCache.Count
Summary:
  Returns the number of TJclPeImage instances currently in the cache.
Description:
  Returns the number of TJclPeImage instances currently in the cache.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportSort
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ImportSection>
Summary:
  Enumeration used to determine how a list of imported functions should be sorted. 
Description:
  Enumeration used by the various import section related classes to determine how a list of imported functions should be sorted. Usually the method called to perform the sort operation allows for further options such as whether the sort should be ascending or descending.
Donator:
  Petr Vones
@@TJclPeImportSort.isName
  The list is sorted on the name of the imported function.
@@TJclPeImportSort.isOrdinal
  The list is sorted on the ordinal by which the function was imported.
@@TJclPeImportSort.isHint
  The list is sorted on the hint of the imported function.
@@TJclPeImportSort.isLibImport
  The list is sorted by the name of the image from which the functions were imported.
--------------------------------------------------------------------------------
@@TJclPeImportLibSort
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ImportSection>
Summary:
  Enumeration used by the TJclPeImportList which determines how the list of import library items is sorted.
Description:
  Enumeration used by the TJclPeImportList which determines how the list of import library items is sorted.
Donator:
  Petr Vones
@@TJclPeImportLibSort.ilName
  The list is sorted by name (TJclPeImportLibItem.Name property).
@@TJclPeImportLibSort.ilIndex
  The list is sorted by index (TJclPeImportLibItem.ImportDirectoryIndex property).
--------------------------------------------------------------------------------
@@TJclPeImportKind
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ImportSection>
Summary:
  Specifies how a function was imported.
Description:
  Specifies how a function was imported. This does not include whether or not 
  the function was imported by name or ordinal.
Donator:
  Petr Vones
@@TJclPeImportKind.ikImport
  Standard implicit import.
@@TJclPeImportKind.ikDelayImport
  Delay load import.
@@TJclPeImportKind.ikBoundImport
  Bound import.
--------------------------------------------------------------------------------
@@TJclPeResolveCheck
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ImportSection>
Summary:
  Specifies the resolution status of imported resp. exported functions.
Description:
  Both the classes that wrap the import section as well as the class that wraps 
  the export section have methods to perform a resolve check. This means 
  slightly different things for an import section than it does for an export 
  section. For example, for the import section it means that the method tries 
  to resolve all imported function by looking them up in the exports section of 
  the image from which the function is imported. If the function is found there 
  the import is considered resolved, otherwise it is unresolved. This latter 
  case would indicate that the OS loader would probably also be unable to resolve 
  the import and loading of the image would fail. The TJclPeResolveCheck type is 
  used by the imports and exports classes to specify whether a function could be 
  resolved. 
Notes:  
  All items start off begin unchecked, so you have to request function 
  resolving explicitly through the appropriate method call.
Donator:
  Petr Vones
@@TJclPeResolveCheck.icNotChecked
  The function was not checked yet. Initial state of all items.
@@TJclPeResolveCheck.icResolved
  The function could be resolved.
@@TJclPeResolveCheck.icUnresolved
  The function could not be resolved. This would indicate an error in the image 
  file evantually causing the OS loader to fail loading the image.
--------------------------------------------------------------------------------
@@TJclPeLinkerProducer
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ImportSection>
Summary:
  Specifies the manufacturer of the linker that produced an image file. 
Description:
  Specifies the manufacturer of the linker that produced an image file. The 
  function uses a heuristic which is not perfect and is only capable of 
  recognizing Delphi, C++ Builder and Microsoft Visual Studio linkers.
Donator:
  Petr Vones
@@TJclPeLinkerProducer.lrBorland
  The image was produced by the Delphi linker.
@@TJclPeLinkerProducer.lrMicrosoft
  The image was produced by the C++ Builder or Microsoft Visual C++ linker.
--------------------------------------------------------------------------------
@@TJclPeImportFuncItem
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ImportSection.TJclPeImportFuncItem>
Summary:
  Represents a single imported function.
Description:
  The TJclPeImportFuncItem class represents a single imported function from some
  image file. The class provides detailed information about how the function was
  imported such as it's name or ordinal. You'll normally won't instantiate this
  class directly but instead retrieve a reference to it through the Items property
  of the TJclPeImportLibItem class.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportFuncItem.Ordinal
Summary:
  The ordinal value by which the function was imported.
Description:
  If the function was imported by ordinal the property reads the ordinal value by
  which it was imported, otherwise it reads 0. You can determine whether the function
  was imported by ordinal or name through the IsByOrdinal property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportFuncItem.Hint
Summary:
  Hint of the imported function.
Description:
  Returns the hint value of the function. The hint is an index into the exports
  table of the image from which the function is imported which allows the OS loader
  to find the correct export a little faster. Note that the hint value may be
  incorrect. In those situations the OS loader itself uses a binary search on the
  exports table to find the correct export.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportFuncItem.ImportLib
Summary:
  Reference to the TJclPeImportLibItem which owns this TJclPeImportFuncItem.
Description:
  Reference to the TJclPeImportLibItem which owns this TJclPeImportFuncItem.
  See the description of TJclPeImportFunctItem for more information.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportFuncItem.IndirectImportName
Summary:
  Returns the name of a function which was imported by ordinal (if available).
Description:
  If the function was imported by ordinal the IndirectImportName property returns
  the name of the function. The JclPeImage module has to look up this name from the
  exports section of the image from which the function is imported. Since an image
  file does not always provide the name of an export, the IndirectImportName can
  be empty. You have to explicitly request this look up through the
  TryGetNamesForOrdinalImports method of the TJclPeImportList or TJclPeImage class
  that owns the TJclPeImportFuncItem.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportFuncItem.IsByOrdinal
Summary:
  Specifies whether the function was imported by ordinal.
Description:
  Specifies whether the function was imported by ordinal. If the function is imported
  by Ordinal the property reads True, otherwise it reads False (and as such the
  function was imported by name).
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportFuncItem.Name
Summary:
  Returns the name of the imported function.
Description:
  The Name property returns the name of the imported function. If the function
  was imported by name the property simply returns that name. If the function was
  imported by ordinal the property returns the value of the IndirectImportName
  property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportFuncItem.ResolveCheck
Summary:
  Specifies whether the function could be resolved.
Description:
  Specifies whether the function could be resolved. The intial value of this property
  will be icNotChecked. You have to request function resolving explicitly through
  the CheckImports method of the TJclPeImportList class.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportLibItem
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ImportSection.TJclPeImportLibItem>
Summary:
  Abstraction of an import descriptor.
Description:
  The import section of an image file consists of a variable number of entries
  named import descriptors. Each individual import descriptor is basically a table
  that describes the imports from one specific image. The TJclPeImportLibItem is
  a class which abstracts such an import descriptor and provides properties to read
  the information contained within it, most importantly the functions imported from
  the image. You'll normally won't create an instance of this class but instead
  retrieve a reference to it through the Items property of the TJclPeImportList class.
  Note that there can, and often will, exist multiple TJclPeImportLibItem entries
  for one image.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportLibItem.SortList
Summary:
  Sorts the list of imports.
Description:
  Sorts the list of imports in this import descriptor according to the supplied
  parameters. You can sort the list on things such as the name of the imports
  and specify an ascending or descending sort.
Parameters:
  SortType - Specifies on which field the list should be sorted. See TJclPeImportSort for a description of the allowed values and their meaning.
  Descending - If True the list is sorted in descending order, if False the list is sorted in ascending order.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportLibItem.Count
Summary:
  Returns the number of items in the Items property.
Description:
  Returns the number of items in the Items property. As such it returns the number
  of imports described by, or contained in, this import descriptor.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportLibItem.FileName
Summary:
  Returns the fully qualified filename of the image described by this entry.
Description:
  Returns the fully qualified name of the image file from which the functions
  described by this import descriptor are imported.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportLibItem.ImportDescriptor
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportLibItem.ImportDirectoryIndex
Summary:
  Position within the Items list of the TJclImportList class.
Description:
  Zero based index into the Items property of the TJclImportList class at which
  this TJclPeImportLibItem is positioned.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportLibItem.ImportKind
Summary:
  Specifies the kind of import.
Description:
  Specifies the kind of import. It can be either a normal import, a bound import
  or a delay loaded import. See the description of TJclPeImportKind for more information.
  Note that this has nothing to do with the method by which a function is imported,
  such as by name or by ordinal. To find out about that use the IsByOrdinal property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportLibItem.Items
Summary:
  Provides indexed access to the items in the list.
Description:
  Provides (zero based) indexed access to the items contained in the import
  descriptor. Each entry in the list is a reference to a TJclPeImportFuncItem
  which describes a single imported function from the image described by this
  import descriptor. The number of items in the list can be found by reading the
  Count property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportLibItem.Name
Summary:
  Returns the lowercase filename of the image described by this entry.
Description:
  Returns the filename of the image file from which the functions described by this
  import descriptor are imported. The returned filename is returned as it appears
  in the image file, except that it's converted to lowercase before it's returned.
  Like the OriginalName property, the returned name is often without path or drive
  indication.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportLibItem.OriginalName
Summary:
  Returns the filename of the image described by this entry.
Description:
  Returns the filename of the image file from which the functions described by this
  import descriptor are imported. The returned filename is returned as it appears
  in the image file, often uppercase and without path or drive indication.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportLibItem.ThunkData32
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportLibItem.ThunkData64
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportLibItem.TotalResolveCheck
Summary:
  Specifies whether all imported functions in this import directory could be resolved.
Description:
  Specifies whether all imported functions in this import directory could be resolved.
  If as little as one function could not be resolved, the property returns icUnresolved.
  This property starts out with the icNotChecked value indicating that resolvement
  wasn't checked yet. You have the explicitly request function resolving through the
  CheckImports method of the TJclPeImportList class.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportList
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ImportSection.TJclPeImportList>
Summary:
  Represents the import section of an image file.
Description:
  The TJclPeImportList class represents the import section of an image file. The
  import section contains a list of import descriptors (represented by the
  TJclPeImportLibItem class) each of which in turn contain all imports from a
  specific image file. Therefore the import section can be viewed as a two-level
  tree structure. For convenience the TJclPeImportList class also allows direct
  access to the complete list of imported functions, thus bypassing the import
  directories level.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportList.CheckImports
Summary:
  Determines whether all imported functions can be resolved.
Description:
  This method determines whether all imported functions can be resolved  by looking
  them up in the exports section of the image from which the function is imported.
  If the function is found there the import is considered resolved, otherwise it is
  unresolved. This latter case would indicate that the OS loader would probably also
  be unable to resolve the import and loading of the image would fail.
Parameters:
  PeImageCache - Allows you to specify a TJclPeImagesCache to be used by the method. This can significantly increase performance because it may prevent a lot of loading and unloading of image files (especially when the image is imports functions from a lot of different images). If you are using an image cache in your application it is recommended you use it here. That way the method can reuse your already loaded images. Note though that if the method needs to load additional images, it will do so using the cache. Those images will not be removed upon method exit.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportList.SmartFindName
Summary:
  Searches the import section for a specific function.
Description:
  The SmartFindName method searches through the all the import directories that apply
  to the specified image name (LibName parameter) for the specified function
  name (CompareName). Through the Options parameter you can specify whether the
  search should be case-sensitive and/or base the comparison on the full name or
  only the basename of the function.
Parameters:
  CompareName - Name of the function to search for.
  LibName - Image from which the function should be imported. If you specify an empty string the search includes all images.
  Options - Set of options that influence the name comparison such as whether it's case-sensitive. See the description of TJclSmartCompOptions for more information.
Result:
  If the specified function was found SmartFindName returns a reference to the
  TJclPeImportFuncItem that represents the found imported function. This reference
  remains owned by the class so you shouldn't free it. It also remains valid only
  as long as the TJclPeImportList isn't destroyed. If the function couldn't be
  found the return value is nil.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportList.SortAllItemsList
Summary:
  Sorts the list of imported functions as accesible through the AllItems property.
Description:
  Sorts the list of imported functions as accesible through the AllItems property.
Parameters:
  SortType - Specifies by which property the list is sorted. You can sort on Name, Ordinal, Hint or Image name. See the description of TJclPeImportSort for more information.
  Descending - Specifies whether the sort should be in ascending (False) or descending (True) order.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportList.SortList
Summary:
  Sorts the list of import directories (the Items property).
Description:
  Sorts the list of import directories (the Items property) according to the property
  specified by the SortType parameter. You can sort either on Index or Name.
Parameters:
  SortType - Specifies on which property the list should be sorted. You can sort either on Index or Name. See the description of TJclPeImportLibSort for more information.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportList.TryGetNamesForOrdinalImports
Summary:
  Attempts to resolve the names of functions that were imported by ordinal.
Description:
  The TryGetNamesForOrdinalImports method searches the export sections of each image
  that is linked against in an attempt to find the names of those functions that
  were imported by ordinal instead of by name. See also the description of the
  IndirectImportName property of the TJclPeImportFuncItem class.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportList.AllItems
Summary:
  Provides indexed access to all imported functions.
Description:
  Provides (zero-based) indexed access to all imported functions, bypassing the
  import directories. Note that this list is initially empty and has to be explicitly
  initialized either by reading the AllItemsCount property (which subsequently returns
  the number of items in the list) or by setting the FilterModuleName property. In
  addition, the items in the AllItems list can be filtered by that same FilterModuleName
  property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportList.AllItemCount
Summary:
  Returns the number of items in the AllItems list.
Description:
  Returns the number of items in the AllItems list. Note that if the list is empty
  the property read method will first trigger the initialisation of the list before
  returning the count.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportList.FilterModuleName
Summary:
  Filters the items that are included in the AllItems list.
Description:
  Allows you to filter the items that are included in the AllItems list. Setting
  this property to a non-empty string will cause only those functions to be added
  that are imported from the specified image.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportList.Items
Summary:
  Provides indexed access to the import directories list.
Description:
  Provides (zero-based) indexed access to the import directories list. Read the
  Count property to determine the number of items in the list. Each item in the
  list represents a single import directory but multiple items may exist for one
  single image file.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportList.LinkerProducer
Summary:
  Returns the manufacturer of the linker that produced the image.
Description:
  Returns the manufacturer of the linker that produced the image. See the
  description of TJclPeLinkerProducer for more information.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportList.UniqueLibItemCount
Summary:
  Returns the number of items in the UniqueLibItems list.
Description:
  Returns the number of items in the UniqueLibItems list.

Donator: Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportList.UniqueLibItemFromName
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportList.UniqueLibItems
Summary:
  List of unique import directories.
Description:
  As you may recall, an import section may contain multiple import directories for
  one and the same image (for example, it may contains two or more import directories
  for the user32.dll image). The UniqueLibItems list provides (zero-based) indexed
  access to a list of import directories that are unique across the import section.
  You can use this list to find out exactly from which images functions are imported,
  including some details about those images, but you shouldn't use, for example,
  the Items property to determine which functions are imported from that image
  because there may exist other import directories which import additional functions.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImportList.UniqueLibNames
Summary:
  List of image names from which functions are imported.
Description:
  As you may recall, an import section may contain multiple import directories for
  one and the same image (for example, it may contains two or more import directories
  for the user32.dll image). The UniqueLibNames list provides (zero-based) indexed
  access to a list of image names that are unique across the import section.
  You can use this list to find out the names of the images from which functions
  are imported.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportSort
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ExportSection>
Summary:
  Enumeration used to determine on which field a list of exported functions is sorted.
Description:
  Enumeration used to determine on which field a list of exported functions is sorted.
Donator:
  Petr Vones
@@TJclPeExportSort.esName
  Sorted on the name by which the function is exported.
@@TJclPeExportSort.esOrdinal
  Sorted on the ordinal by which the function is exported.
@@TJclPeExportSort.esHint
  Sorted on the hint.
@@TJclPeExportSort.esAddress
  Sorted on the address of the exported function.
@@TJclPeExportSort.esForwarded
  Sorted on the name of the function to which the export is forwarded.
@@TJclPeExportSort.esAddrOrFwd
  Sorted on address or name of the function to which the export is forwarded depending on whether the function is forwarded or not.
--------------------------------------------------------------------------------
@@TJclPeExportFuncItem
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ExportSection.TJclPeExportFuncItem>
Summary:
  Represents a single exported function.
Description:
  The TJclPeExportFuncItem represents a single exported function in the exports
  section of an image. The class provides all the details about the function such
  as the name or ordinal by which it is exported.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncItem.Address
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncItem.AddressOrForwardStr
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncItem.IsForwarded
Summary:
  Specifies whether the export is a function forwarder.
Description:
  If the export is a function forwarder the IsForwarded property returns True, if
  it is not forwarded the property returns False.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncItem.ForwardedName
Summary:
  Name of the image and function to which the export is forwarded.
Description:
  If the export is a function forwarder, as can be determined by reading the
  IsForwarded property, the ForwardedName property returns the name of the image
  to which the function is forwarded and the name of that function, separated with
  a single dot.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncItem.ForwardedLibName
Summary:
  Returns the name of the image to which the export is forwarded.
Description:
  Returns the name of the image, including extension, to which the export is forwarded.
  If the export isn't forwarded the property returns an empty string. You can
  determine whether the export is forwarded by reading the IsForwarded property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncItem.ForwardedFuncOrdinal
Summary:
  Returns the ordinal of the function to which the export is forwarded.
Description:
  If the export is forwarded the ForwardedFuncOrdinal property returns the ordinal
  of the function to which the export is forwarded. If the export is not forwarded
  the property returns 0. You can determine whether the export is
  forwarded by reading the IsForwarded property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncItem.ForwardedFuncName
Summary:
  Returns the name of the function to which the export is forwarded.
Description:
  If the export is forwarded the ForwardedFuncOrdinal property returns the name
  of the function to which the export is forwarded. If the export is not forwarded
  the property returns an empty string. You can determine whether the export is
  forwarded by reading the IsForwarded property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncItem.Hint
Summary:
  Contains the index into TJclPeExportFuncList.Items property at which the function is located.
Description:
  The Hint property contains the (zero based) index into Items property of the
  TJclPeExportFuncList at which this function is located. This is also the position
  in the export table at which the function is located.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncItem.Name
Summary:
  Returns the name by which the function is exported.
Description:
  If the function is exported by name the Name property returns the name by which
  the function is exported. If the function is not exported by name the property
  returns an empty string.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncItem.Ordinal
Summary:
  Returns the ordinal value by which the function is exported.
Description:
  If the function is exported by ordinal the Ordinal property returns the ordinal
  value by which  the function is exported. If the function is not exported by
  ordinal the property returns 0.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncItem.ResolveCheck
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ExportSection.TJclPeExportFuncList>
Summary:
  The TJclPeExportFuncList class represents the export section of an image file.
Description:
  The TJclPeExportFuncList class represents the export section of an image file.
  As such it allowsaccess to the list of exported functions in various ways and
  provides some information about the exports section itself.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.CheckForwards
Summary:
  Determines the validity of all forwarded function exports.
Description:
  CheckForwards determines whether all forwarded function exports are valid. That is,
  it determines whether the function which is forwarded to atually exist. When the
  method returns the TotalResolveCheck property indicates whether or not all function
  forwards are valid. You can also use the ResolveCheck property of the individual
  TJclPeExportFuncItem items to determine the result on a per function basis.
Parameters:
  PeImageCache - Allows you to specify a TJclPeImagesCache to be used by the method. This can significantly increase performance because it may prevent a lot of loading and unloading of image files. If you are using an image cache in your application it is recommended you use it here. That way the method can reuse your already loaded images. Note though that if the method needs to load additional images, it will do so using the cache. Those images will not be removed upon method exit.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.ItemName
Summary:
  Returns the Name propery of a function item.
Description:
  Helper class methods which returns the name of the specified item (it's name
  property) if the Item is valid (non-nil) or an empty string if the Item parameter
  is nil.
Parameters:
  Item - The Item for which to retrieve the Name property. Can be nil.
Result:
  If Item is non-nil the method returns the Name property of the Item, otherwise
  it returns an empty string.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.OrdinalValid
Summary:
  TODO
Description:
  TODO
Parameters:
  Ordinal - TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.PrepareForFastNameSearch
Summary:
  Prepares the list for fast name searching.
Description:
  Prepares the list for fast name searching. It does so basically by sorting the
  list in ascending order on the Name property of the individual function exports.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.SmartFindName
Summary:
  Searches the list of function exports for a specific function.
Description:
  The SmartFindName method searches the list of function exports for the specified function.
Parameters:
  CompareName - The name of the function to search for.
  Options - Set of options which determine how the method performs the name comparison. You can specify, for example, that the comparison should be case insensitive. See the description of TJclSmartCompOptions for more information.
Result:
  If the method finds the specified export it returns a reference to a TJclPeExportFuncItem
  instance which represents the found export. You can use this instance to find out more
  details about it. The instance remains owned by the class so never free it.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.SortList
Summary:
  Sorts the exported functions list.
Description:
  Sorts the exported functions list.
Parameters:
  SortType - Determines the key on which the list is sorted. An example is sorting based on the name by which the functions are exported. See the description of TJclPeExportSort for more information.
  Descending - Determines whether the sort is in ascending or descending order.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.AnyForwards
Summary:
  AnyFowards determines whether the image contains any function forwarderes.
Description:
  AnyFowards determines whether the image contains any function forwarderes. It
  reads True if there is at least one function forwarder, otherwise it reads False.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.Base
Summary:
  The starting ordinal number for exports in this image. Will usually be 1.
Description:
  The starting ordinal number for exports in this image. Will usually be 1.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.ExportDir
Summary:
  Pointer to a TImageExportDirectory record which describes the Export Directory Table.
Description:
  Pointer to a TImageExportDirectory record which describes the Export Directory Table.
  The Export Directory Table contains address information that is used to resolve
  fix-up references to the entry points within this image.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.ForwardedLibsList
Summary:
  Returns a list containing the names of forwarded functions.
Description:
  Returns a list containing the names of forwarded functions, if any. The list
  remains owned by the class so never free it.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.FunctionCount
Summary:
  Returns the number of items in the Items property.
Description:
  Returns the number of items in the Items property. In other words, it returns the
  number of function exports in this image.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.Items
Summary:
  Provides indexed access to the items contained in the export table.
Description:
  Provides (zero based) indexed access to the items contained in the export table.
  As such it contains all exported funtions in the image. Initially the list is
  in the same order as the functions appear in the export table but they may be
  sorted afterwards.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.ItemFromAddress
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.ItemFromName
Summary:
  Provides, name based, indexed access to the list of exported functions.
Description:
  Provides indexed access to the list of exported functions where the index is the
  name by which the function is exported. If a function by the specified name is
  exported from the image the property returns a reference to a TJclPeExportFuncItem
  which represents that function. Note that the returned reference remains owned by
  the class so never free it. If no function is exported by the specified name the
  property returns nil.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.ItemFromOrdinal
Summary:
  Provides, ordinal based, indexed access to the list of exported functions.
Description:
  Provides indexed access to the list of exported functions where the index is the
  ordinal value by which the function is exported. If a function by the orindal value
  is exported from the image the property returns a reference to a TJclPeExportFuncItem
  which represents that function. Note that the returned reference remains owned by
  the class so never free it. If no function is exported by the specified ordinal
  value the property returns nil.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.Name
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeExportFuncList.TotalResolveCheck
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceKind
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ResourceSection>
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
@@TJclPeResourceKind.rtUnknown0
  TODO
@@TJclPeResourceKind.rtCursorEntry
  TODO
@@TJclPeResourceKind.rtBitmap
  TODO
@@TJclPeResourceKind.rtIconEntry
  TODO
@@TJclPeResourceKind.rtMenu
  TODO
@@TJclPeResourceKind.rtDialog
  TODO
@@TJclPeResourceKind.rtString
  TODO
@@TJclPeResourceKind.rtFontDir
  TODO
@@TJclPeResourceKind.rtFont
  TODO
@@TJclPeResourceKind.rtAccelerators
  TODO
@@TJclPeResourceKind.rtRCData
  TODO
@@TJclPeResourceKind.rtMessageTable
  TODO
@@TJclPeResourceKind.rtCursor
  TODO
@@TJclPeResourceKind.rtUnknown13
  TODO
@@TJclPeResourceKind.rtIcon
  TODO
@@TJclPeResourceKind.rtUnknown15
  TODO
@@TJclPeResourceKind.rtVersion
  TODO
@@TJclPeResourceKind.rtDlgInclude
  TODO
@@TJclPeResourceKind.rtUnknown18
  TODO
@@TJclPeResourceKind.rtPlugPlay
  TODO
@@TJclPeResourceKind.rtVxd
  TODO
@@TJclPeResourceKind.rtAniCursor
  TODO
@@TJclPeResourceKind.rtAniIcon
  TODO
@@TJclPeResourceKind.rtHmtl
  TODO
@@TJclPeResourceKind.rtUserDefined
  TODO
--------------------------------------------------------------------------------
@@TJclPeResourceRawStream
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ResourceSection.TJclPeResourceRawStream>
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceRawStream.Create
Summary:
  TODO
Description:
  TODO
Parameters:
  AResourceItem - TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceRawStream.Write
Summary:
  TODO
Description:
  TODO
Parameters:
  Buffer - TODO
  Count - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ResourceSection.TJclPeResourceItem>
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ResourceSection.TJclPeResourceItem>
Summary:
  TODO
Description:
  TODO
Parameters:
  AImage - TODO
  AParentItem - TODO
  AEntry - TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem.DataEntry
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem.Entry
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem.Image
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem.IsDirectory
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem.IsName
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem.List
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem.Level
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem.Name
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem.ParameterName
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem.ParentItem
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem.RawEntryDataSize
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem.RawEntryData
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem.ResourceType
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceItem.ResourceTypeStr
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceList
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ResourceSection.TJclPeResourceList>
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceList.Create
Summary:
  TODO
Description:
  TODO
Parameters:
  ADirectory - TODO
  AImage - TODO
  AParentItem - TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceList.Directory
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceList.Items
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeResourceList.ParentItem
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeRootResourceList
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ResourceSection.TJclPeRootResourceList>
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeRootResourceList.FindResource
Summary:
  TODO
Description:
  TODO
Parameters:
  ResourceType - TODO
  ResourceName - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeRelocation
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.RelocationSection>
Summary:
  TODO
Description:
  The TJclPeRelocation record represents a single address fix up in the relocation
  table of the imagefile.
Donator:
  Petr Vones
@@TJclPeRelocation.Address
  The relocation offset which, when added to the VirtualAddress property of the relocation block, specifies the address which needs to be fixed up.
@@TJclPeRelocation.RelocType
  The relocation type which indicates how the fix up is to be performed. Common values on Intel platforms are IMAGE_REL_BASED_HIGHLOW and IMAGE_REL_BASED_ABSOLUTE. Delcarations for the complete list is includedin the JclWin32 file. Search the Platform SDK and/or MSDN library for details about all these possible relocation types.
@@TJclPeRelocation.VirtualAddress
  The relative virtual address specifying the memory address which needs to be fixed up (equal to Address + TJclPeRelocEntry.VirtualAddress).
--------------------------------------------------------------------------------
@@TJclPeRelocEntry
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.RelocationSection.TJclPeRelocEntry>
Summary:
  Represents a block of relocation entries.
Description:
  The TJclPeRelocEntry class represents a block of relocation entries. Each such
  block specifies the address fix-ups for a single 4KB block within the image file.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeRelocEntry.Count
Summary:
  Returns the number of elements in the Relocations property.
Description:
  Returns the number of elements in the Relocations property. That is, it returns
  the number of address fix-ups defined in this block.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeRelocEntry.Relocations
Summary:
  Provides indexed access to the address fix-ups defined in this block.
Description:
  The Relocations property provides (zero-based) indexed access to the address
  fix-ups defined in this block. To learn the number of entries in the list read
  the Count property. Each entry defines a single address fix-up as it appears in
  the relocations table.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeRelocEntry.Size
Summary:
  The Size property returns the size, in bytes, occupied by the relocation block.
Description:
  The Size property returns the size, in bytes, occupied by the relocation block.
  Since each block is a variable length structure representing a single 4KB of the
  image file, each block may need a different ammount of memory to hold all necessary
  fixups.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeRelocEntry.VirtualAddress
Summary:
  Returns the starting relative virtual address (RVA) for this block of relocations.
Description:
  The VirtualAddress property returns the starting relative virtual address (RVA)
  for this block of relocations. The offset of each relocation (the Address field
  of the TJclPeRelocation record) is added to this value to form the actual RVA
  where the relocation needs to be applied.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeRelocList
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.RelocationSection.TJclPeRelocList>
Summary:
  The TJclPeRelocList class represents the fix-up table of the image.
Description:
  The TJclPeRelocList class represents the fix-up table of the image. The fix-up
  table contains entries for all fixups in the image. The fixup table is broken into
  blocks of fixups. Each block represents the fixups for a 4K page. Each block is
  represented as an instance of TJclPeRelocEntry in the Items property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeRelocList.AllItems
Summary:
  Provides indexed access to the complete list of individual address fix ups.
Description:
  The AllItems property provides (zero based) indexed access to the complete list
  of individual address fix ups. See the description of TJclPeRelocation for more
  information on how to interpret the returned record.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeRelocList.AllItemCount
Summary:
  Contains the number of entries in the Items property.
Description:
  Contains the number of entries in the Items property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeRelocList.Items
Summary:
  Provides indexed access to the fixup blocks.
Description:
  The Items property provides (zero-based) indexed access to the fixup blocks. Each
  entry represents a 4 KB block within the image and contains a list of address
  fix-ups. To directly access these individual fix-up use the AllItems property. To
  learn the number of items in the list readthe Count property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeDebugList
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.DebugSection.TJclPeDebugList>
Summary:
  The TJclPeDebugList represent the debug section of an image file.
Description:
  The TJclPeDebugList represent the debug section of an image file.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeDebugList.Items
Summary:
  Provides indexed access to the list of debug directories.
Description:
  The Items property provides (zero based) indexed access to the list of debug
  directories maintained by the class. Each entry in the list describes a single
  debug directory including it's locations, size and the type of debug information
  it contains. For details about the contents of the returned TImageDebugDirectory
  record look up IMAGE_DEBUG_DIRECTORY in the Platform SDK. To learn the number of
  items in the list read the Count property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeHeader
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.TJclPeImage>
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
@@TJclPeHeader.JclPeHeader_Signature
  TODO
@@TJclPeHeader.JclPeHeader_Machine
  TODO
@@TJclPeHeader.JclPeHeader_NumberOfSections
  TODO
@@TJclPeHeader.JclPeHeader_TimeDateStamp
  TODO
@@TJclPeHeader.JclPeHeader_PointerToSymbolTable
  TODO
@@TJclPeHeader.JclPeHeader_NumberOfSymbols
  TODO
@@TJclPeHeader.JclPeHeader_SizeOfOptionalHeader
  TODO
@@TJclPeHeader.JclPeHeader_Characteristics
  TODO
@@TJclPeHeader.JclPeHeader_Magic
  TODO
@@TJclPeHeader.JclPeHeader_LinkerVersion
  TODO
@@TJclPeHeader.JclPeHeader_SizeOfCode
  TODO
@@TJclPeHeader.JclPeHeader_SizeOfInitializedData
  TODO
@@TJclPeHeader.JclPeHeader_SizeOfUninitializedData
  TODO
@@TJclPeHeader.JclPeHeader_AddressOfEntryPoint
  TODO
@@TJclPeHeader.JclPeHeader_BaseOfCode
  TODO
@@TJclPeHeader.JclPeHeader_BaseOfData
  TODO
@@TJclPeHeader.JclPeHeader_ImageBase
  TODO
@@TJclPeHeader.JclPeHeader_SectionAlignment
  TODO
@@TJclPeHeader.JclPeHeader_FileAlignment
  TODO
@@TJclPeHeader.JclPeHeader_OperatingSystemVersion
  TODO
@@TJclPeHeader.JclPeHeader_ImageVersion
  TODO
@@TJclPeHeader.JclPeHeader_SubsystemVersion
  TODO
@@TJclPeHeader.JclPeHeader_Win32VersionValue
  TODO
@@TJclPeHeader.JclPeHeader_SizeOfImage
  TODO
@@TJclPeHeader.JclPeHeader_SizeOfHeaders
  TODO
@@TJclPeHeader.JclPeHeader_CheckSum
  TODO
@@TJclPeHeader.JclPeHeader_Subsystem
  TODO
@@TJclPeHeader.JclPeHeader_DllCharacteristics
  TODO
@@TJclPeHeader.JclPeHeader_SizeOfStackReserve
  TODO
@@TJclPeHeader.JclPeHeader_SizeOfStackCommit
  TODO
@@TJclPeHeader.JclPeHeader_SizeOfHeapReserve
  TODO
@@TJclPeHeader.JclPeHeader_SizeOfHeapCommit
  TODO
@@TJclPeHeader.JclPeHeader_LoaderFlags
  TODO
@@TJclPeHeader.JclPeHeader_NumberOfRvaAndSizes
  TODO
--------------------------------------------------------------------------------
@@TJclLoadConfig
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.TJclPeImage>
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
@@TJclLoadConfig.JclLoadConfig_Characteristics
  TODO
@@TJclLoadConfig.JclLoadConfig_TimeDateStamp
  TODO
@@TJclLoadConfig.JclLoadConfig_Version
  TODO
@@TJclLoadConfig.JclLoadConfig_GlobalFlagsClear
  TODO
@@TJclLoadConfig.JclLoadConfig_GlobalFlagsSet
  TODO
@@TJclLoadConfig.JclLoadConfig_CriticalSectionDefaultTimeout
  TODO
@@TJclLoadConfig.JclLoadConfig_DeCommitFreeBlockThreshold
  TODO
@@TJclLoadConfig.JclLoadConfig_DeCommitTotalFreeThreshold
  TODO
@@TJclLoadConfig.JclLoadConfig_LockPrefixTable
  TODO
@@TJclLoadConfig.JclLoadConfig_MaximumAllocationSize
  TODO
@@TJclLoadConfig.JclLoadConfig_VirtualMemoryThreshold
  TODO
@@TJclLoadConfig.JclLoadConfig_ProcessHeapFlags
  TODO
@@TJclLoadConfig.JclLoadConfig_ProcessAffinityMask
  TODO
@@TJclLoadConfig.JclLoadConfig_CSDVersion
  TODO
@@TJclLoadConfig.JclLoadConfig_Reserved1
  TODO
@@TJclLoadConfig.JclLoadConfig_EditList
  TODO
@@TJclLoadConfig.JclLoadConfig_Reserved
  TODO
--------------------------------------------------------------------------------
@@TJclPeFileProperties
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.TJclPeImage>
Summary:
  Record which contains some common attributes of an image file.
Description:
  Record which contains some common attributes of an image file.
Donator:
  Petr Vones
@@TJclPeFileProperties.Size
  Size, in bytes, of the image file.
@@TJclPeFileProperties.CreationTime
  Date when the image file was created.
@@TJclPeFileProperties.LastAccessTime
  Date when the image file was last accessed.
@@TJclPeFileProperties.LastWriteTime
  Date when the image file was last written to.
@@TJclPeFileProperties.Attributes
  Attributes of the image file.
--------------------------------------------------------------------------------
@@TJclPeImageStatus
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.TJclPeImage>
Summary:
  TJclPeImageStatus defines the various states a TJclPeImage instance can be in.
Description:
  TJclPeImageStatus defines the various states a TJclPeImage instance can be in.
Donator:
  Petr Vones
@@TJclPeImageStatus.stNotLoaded
  No image file is loaded. This is the status after creation and after clearing the instance.
@@TJclPeImageStatus.stOk
  An image file was succesfully loaded.
@@TJclPeImageStatus.stNotPE
  The most recently loaded file was not a valid PE image file.
@@TJclPeImageStatus.stNotFound
  The file coudln't be found.
@@TJclPeImageStatus.stError
  An unexpected error occured while loading a PE image file.
--------------------------------------------------------------------------------
@@TJclPeImage
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.TJclPeImage>
Summary:
  Abstraction of a portable executable file.
Description:
  The TJclPeImage class provides an abstraction of a portable executable (PE) file,
  referred to throughout this documentation as simply image or PE file. PE is
  the standard format for executable files on the Windows platform. This includes
  files such as .exe, .dll and so forth. TJclPeImage allow you to easily read all
  information contained in a PE file such as the functions it imports and/or exports.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.Create
Summary:
  Creates an instance of the TJclPeImage class.
Description:
  Creates an instance of the TJclPeImage class. Use the FileName property or
  AttachLoadedModule method to attach the class to a specific image.
Parameters:
  ANoExceptions - Determines whether certain methods raise exceptions when they encounter a failure. Currently this applies only to setting the FileName property to an invalid filename or calling the AttachLoadedModule method with an invalid parameter.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.AttachLoadedModule
Summary:
  Attaches the TJclPeImage instance to an already loaded image.
Description:
  Attaches the TJclPeImage instance to an already loaded image. This causes the
  currently loaded image to be discarded and the class to reinitialize itself to
  the image specified by the Handle parameter.
Parameters:
  Handle - Handle to the image you want to attach to.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.CalculateCheckSum
Summary:
  TODO
Description:
  TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.DirectoryEntryToData
Summary:
  TODO
Description:
  TODO
Parameters:
  Directory - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.GetSectionHeader
Summary:
  Returns a pointer to the section header of the specified named section in the image.
Description:
  Returns a pointer to the section header of the specified named section in the image.
Parameters:
  SectionName - Name of the section for which to retrieve the section header.
  Header - Receives a pointer to a TImageSectionHeader record which describes the section header of the requested section. If the method fails the contents of this parameter are undefined.
Result:
  If the function succeeds it returns True, otherwise it returns False.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.GetSectionName
Summary:
  Returns the name of the section specified by the Header parameter.
Description:
  Returns the name of the section specified by the Header parameter.
Parameters:
  Header - Pointer to the section header record for which you want to retrieve the name.
Result:
  If the function succeeds it returns the name of the specified section, otherwise
  it returns an empty string.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.IsSystemImage
Summary:
  Returns True if the image is a kernel mode executable.
Description:
  Returns True if the image is a kernel mode executable.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.RawToVa
Summary:
  TODO
Description:
  TODO
Parameters:
  Raw - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.RvaToSection
Summary:
  TODO
Description:
  TODO
Parameters:
  Rva - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.RvaToVa
Summary:
  TODO
Description:
  TODO
Parameters:
  Rva - TODO
Result:
  TODO
Donator:
  Petr Vones
Contributor:
  Anonymous
--------------------------------------------------------------------------------
@@TJclPeImage.StatusOK
Summary:
  Indicates whether the object is correctly initialized.
Description:
  Indicates whether the object is correctly initialized. That is, if it was
  succesfully attached to a valid image file. If this poperty returns False you
  should not use any of it's properties or methods until reinitialized using the
  FileName property or the AttachLoadedModule method.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.TryGetNamesForOrdinalImports
Summary:
  Looks up the names of functions that we're imported by ordinal.
Description:
  The TryGetNamesForOrdinalImports method searches the export sections of each image
  that it is linked against in an attempt to find the names of those functions that
  were imported by ordinal instead of by name. See also the description of the
  IndirectImportName property of the TJclPeImportFuncItem class and the same named
  method in the TJclPeImportList class.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.VerifyCheckSum
Summary:
  Verifies the checksum of a portable executable file.
Description:
  VerifyCheckSum verifies the correctness of the checksum of the image file.
Result:
  If the checksum is valid the method returns True, otherwise it returns False. Note
  that 0 is considered a valid checksum.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.DebugTypeNames
Summary:
  TODO
Description:
  TODO
Parameters:
  DebugType - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.DirectoryNames
Summary:
  TODO
Description:
  TODO
Parameters:
  Directory - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.ExpandBySearchPath
Summary:
  TODO
Description:
  TODO
Parameters:
  ModuleName - TODO
  BasePath - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.HeaderNames
Summary:
  TODO
Description:
  TODO
Parameters:
  Index - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.LoadConfigNames
Summary:
  TODO
Description:
  TODO
Parameters:
  Index - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.ShortSectionInfo
Summary:
  TODO
Description:
  TODO
Parameters:
  Characteristics - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.StampToDateTime
Summary:
  TODO
Description:
  TODO
Parameters:
  TimeDateStamp - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.AttachedImage
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.DebugList
Summary:
  Allows access to the debug section of the file.
Description:
  The DebugList property returns a TJclPeDebugList instance which allows access
  to the debug section (.debug) of the loaded PE image file.
  See TJclPeDebugList for more information.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.Description
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.Directories
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.DirectoryExists
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.ExportList
Summary:
  Allows access to the export section of the image file.
Description:
  The ExportList property returns a TJclPeExportFuncList instance which allows
  access to the export section (.edata) of the loaded PE image file.
  See TJclPeExportFuncList for more information.
See also:
  TJclPeExportFuncList
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.FileName
Summary:
  Name of the loaded PE image file.
Description:
  Read the FileName property to determine which PE image file is currently loaded.
  Set FileName to load different image file. Note that depending on how the TJclPeImage
  instance was constructed, loading an invalid image file may either raise an
  exception or not. In any case the Status is updated to reflect success
  or failure.
See also:
  Status
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.FileProperties
Summary:
  Returns standard information about the file.
Description:
  The FileProperties property returns a TJclPeFileProperties record containing
  standard (non PE specific) information about the loaded image file. This includes
  it's size, creation time and attributes.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.HeaderValues
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.ImageSectionCount
Summary:
  Returns the number of sections in the PE image.
Description:
  The ImageSectionCount property returns the number of sections in the loaded
  PE image file. The returned Count minus one, is the highest valid index into
  the ImageSectionHeader and ImageSectionNames properties.
See also:
  ImageSectionNames
  ImageSectionHeaders
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.ImageSectionHeaders
Summary:
  Returns the image section header of a specific section.
Description:
  The ImageSectionHeaders array property returns the section header of the section
  indicated by the specified index. Valid indices are from 0 to ImageSectionCount - 1.
  To retrieve the name of a section use the ImageSectionNames property.
  For the interpretation of the fields in the returned header see the Platform SDK
  and "Portable Executable and Common Object File Format Specification"
  Revision 6.0 February 1999 in the MSDN library.
See also:
  ImageSectionCount
  ImageSectionNames
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.ImageSectionNames
Summary:
  Returns the name of a specific section.
Description:
  The ImageSectionNames array property returns the name of the section indicated
  by the index. Valid indices are from 0 to ImageSectionCount - 1. Returned names
  are always 8 characters or shorter. Common names are ".reloc", ".text" and ".data".
See also:
  ImageSectionCount
  ImageSectionHeaders
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.ImageSectionNameFromRva
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.ImportList
Summary:
  Allows access to the import section.
Description:
  The ImportList property returns a TJclPeImportList instance which allows access
  to the import section (.idata) of the loaded PE image file.
  See TJclPeImportList for more information.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.LoadConfigValues
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.LoadedImage
Summary:
  Returns information about the loaded image.
Description:
  Returns a TLoadedImage record which contains information about the loaded PE image
  file. See the LOADED_IMAGE topic in the Platform SDK for a description of this
  record.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.MappedAddress
Summary:
  Returns the base address at which the file was loaded.
Description:
  The MappedAddress property returns the (virtual) base address at which the PE
  file was loaded. The returned value is identical to LoadedImage.MappedAddress
  and is only provided for convenience (it's often used field).
See also:
  LoadedImage
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.OptionalHeader32
Summary:
  Allows access to the image optional header.
Description:
  Read OptionalHeader to gain access to the optional header of the loaded PE file.
  The optional header contains fields standard to all COFF implementations, Windows
  specific fields such as the target subsytem and allows access to all data
  directories. Generally speaking, it provides all information for the Windows
  loader to successfully load the image. Note that not all valid PE image files
  have an optional header. Specifically an object file (.obj) doesn't necessarily
  have one (that's why it's called optional). See "Portable Executable and Common
  Object File Format Specification" Revision 6.0 February 1999 in the MSDN library
  for a description of the fields in the returned record.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.OptionalHeader64
Summary:
  Allows access to the image optional header.
Description:
  Read OptionalHeader to gain access to the optional header of the loaded PE file.
  The optional header contains fields standard to all COFF implementations, Windows
  specific fields such as the target subsytem and allows access to all data
  directories. Generally speaking, it provides all information for the Windows
  loader to successfully load the image. Note that not all valid PE image files
  have an optional header. Specifically an object file (.obj) doesn't necessarily
  have one (that's why it's called optional). See "Portable Executable and Common
  Object File Format Specification" Revision 6.0 February 1999 in the MSDN library
  for a description of the fields in the returned record.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.RelocationList
Summary:
  Allows access to the relocations section of the PE file.
Description:
  The RelocationList property returns a TJclPeRelocList instance which allows
  access to the relocations section (.reloc) of the loaded PE file. This is also
  known as the fix up table.
  See REF Target"..\Relocations section\TJclPeRelocList">TJclPeRelocList for more information.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.ResourceList
Summary:
  Allows access to the resource section of the PE file.
Description:
  Returns a TJclPeRootResourceList instance which allows access to the resource
  section (.rsrc) of the loaded PE file.
  See TJclPeRootResourceList for more information.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.Status
Summary:
  Returns the status of the TJclPeImage instance.
Description:
  Read status to determine the state of the TJclPeImage instance. Valid states include
  not loaded, ok, not a valid PE file and so forth. Depending on the NoExceptions
  parameter of the constructor, methods of the TJclPeImage may or may not raise
  exceptions. Therefor unless you check this property it is unknown whether or not
  the TJclPeImage contains valid data.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.UnusedHeaderBytes
Summary:
  Returns the offset and size of the part of the PE header which is currently unused.
Description:
  Returns the offset and size of the part of the PE header which is currently unused.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.VersionInfo
Summary:
  Returns file version information.
Description:
  VersionInfo returns a TJclFileVersionInfo instance which allows you to read the
  version information, if any, of the image file. If the file doesn't have a file
  version resource reading this property returns nil.
  See TJclFileVersionInfo for more information.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeImage.VersionInfoAvailable
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.DelphiCBuilderSpecific.TJclPePackageInfo>
Summary:
  Allows you to obtain information about Delphi packages.
Description:
  The TJclPackageInfo class allows you to obtain information about Delphi packages
  such as which units it contains and which packages it requires.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo.Create
Summary:
  Creates and initializes an instance of TJclPePackageInfo.
Description:
  Creates and initializes an instance of TJclPePackageInfo.
Parameters:
  ALibHandle - Handle to a loaded package. For example, the handle returned by the LoadPackage RTL function.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo.PackageModuleTypeToString
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo.PackageOptionsToString
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo.ProducerToString
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo.UnitInfoFlagsToString
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo.Contains
Summary:
  Returns a list containing the names of all units contained in the package.
Description:
  Returns a list containing the names of all units contained in the package.
  Note that the returned TStrings instance remains owned by the class so you should
  never free it. The list sorting is controlled by the Sorted property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo.ContainsCount
Summary:
  Returns the number of items in the ContainsNames property.
Description:
  Returns the number of items in the ContainsNames property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo.ContainsNames
Summary:
  Provides indexed access to the list of unit names contained in the package.
Description:
  The ContainsNames property provides (zero based) indexed access to the list of
  unit names contained in the package. To learn the number of items in the list
  read the ContainsCount property. To read the flags associated with the contained
  unit read ContainsFlags property using the same index.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo.ContainsFlags
Summary:
  Flags associated with a particular contained unit.
Description:
  The ContainsFlags property provides (zero based) indexed access to the list of
  flags associated with the list of units contained in the package. This list is
  parallel to the ContainsNames property; to determine the flags associated with
  ContainsNames[I] read ContainsFalgs[I]. The valid values are defined in SysUtils
<TABLE>
Flag            Description
--------------  -----------
ufMainUnit      TODO
ufPackageUnit   TODO
ufWeakUnit      TODO
ufOrgWeakUnit   TODO
ufImplicitUnit  TODO
</TABLE>
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo.Description
Summary:
  Returns the description string for the package as it appears in the package resource.
Description:
  Returns the description string for the package as it appears in the package resource.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo.Flags
Summary:
  Returns a set of flags for the package encoded as a set of bits.
Description:
  Returns a set of flags for the package. The valid values for this property are
  defined in SysUtils
<TABLE>
Flag                 Description
-------------------  -----------
pfNeverBuild         TODO
pfDesignOnly         TODO
pfRunOnly            TODO
pfIgnoreDupUnits     TODO
pfModuleTypeMask     TODO
pfExeModule          TODO
pfPackageModule      TODO
pfProducerMask       TODO
pfV3Produced         TODO
pfProducerUndefined  TODO
pfBCB4Produced       TODO
pfDelphi4Produced    TODO
pfLibraryModule      TODO
</TABLE>
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo.Requires
Summary:
  Returns a list of package names that the package requires.
Description:
  Returns a list of package names that the package requires. Note that the returned
  TStrings object remains owned by the class so you should never free it.
  The list sorting is controlled by the Sorted property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo.RequiresCount
Summary:
  Returns the number of items in the RequiresNames property.
Description:
  Returns the number of items in the RequiresNames property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo.RequiresNames
Summary:
  Provides indexed access to the list of package names that are required by the package.
Description:
  The RequiresNames property provides (zero based) indexed access to the list of
  package names that are required by the package. To learn the number of items in
  the list read the RequiresCount property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPePackageInfo.Sorted
Summary:
  Defines if Contains and Requires lists are sorted (or not).
Description:
  The Sorted property defines if Contains and Requires lists are sorted (or not).
  It is set to True by default.
Donator:
  Jean-Fabien Connault
--------------------------------------------------------------------------------
@@TJclPeBorImage
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.DelphiCBuilderSpecific.TJclPeBorImage>
Summary:
  Specialisation of TJclPeImage for Delphi/C++Builder produced images.
Description:
  The TJclPeBorImage class is a specialisation of TJclPeImage which allows access
  to information contained in the image file which is specific, and therefore unique,
  to images produced by a Delphi or C++Builder linker.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeBorImage.FreeLibHandle
Summary:
  Closes the library handle as returned by the LibHandle property.
Description:
  Closes the library handle as returned by the LibHandle property.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeBorImage.IsBorlandImage
Summary:
  Returns whether or not the image is an image produced by a Delphi or C++Builder linker.
Description:
  Returns whether or not the image is an image produced by a Delphi or C++Builder linker.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeBorImage.IsPackage
Summary:
  Returns whether the image is Delphi or C++Builder package file.
Description:
  Returns whether the image is Delphi or C++Builder package file.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeBorImage.LibHandle
Summary:
  Returns a handle to the loaded library (image).
Description:
  The LibHandle property loads the image file as a datafile (if necessary) and
  returns a handle to the loaded image. Use the FreeLibHandle method when you no
  longer need the handle.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeBorImage.PackageInfo
Summary:
  Returns an object which provides additional information about a package.
Description:
  Returns an instance of TJclPePackageInfo which provides additional information
  about the image such as the units contained in it. This property is only valid
  if the image is a package.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeBorImage.PackageInfoSorted
Summary:
  Defines if PackageInfo's Contains and Requires lists are sorted (or not).
Description:
  The Sorted property defines if PackageInfo's Contains and Requires lists are
  sorted (or not). It is set to True by default.
Donator:
  Jean-Fabien Connault
--------------------------------------------------------------------------------
@@TJclPeNameSearchOption
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ThreadedSearch>
Summary:
  Flags that determine which parts of an image is searched.
Description:
  TJclPeNameSearchOptions is a set of flags used by the TJclPeNameSearch class to
  determine the scope of the search. In other word, these flags determine which
  parts of an image is searched.
Donator:
  Petr Vones
@@TJclPeNameSearchOption.seImports
  Searches the import section of the image.
@@TJclPeNameSearchOption.seDelayImports
  Searches the delay loaded imports.
@@TJclPeNameSearchOption.seBoundImports
  Searches the bound imports.
@@TJclPeNameSearchOption.seExports
  Searches the export section of the image.
@@TJclPeNameSearchOptions
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ThreadedSearch>
<COMBINE TJclPeNameSearchOption>
--------------------------------------------------------------------------------
@@TJclPeNameSearchNotifyEvent
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ThreadedSearch>
Summary:
  Event which is fired immediately before a new image is searched.
Description:
  Event exposed by the TJclPeNameSearch class which is fired each time the search
  continues it search in a new image. The event is fired immediately before the
  image is searched and you can use it, for example, to display user progress
  information or to exclude certain images from being searched.
Parameters:
  Sender - Reference to the TJclPeNameSearch instance for which the event is fired.
  PeImage - Reference to a TJclPeImage instance which is used to perform the search.
  Process - Determines whether or not to process the image file. If you set Process to False the image is skipped, if you set it to True the image is searched.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeNameSearchFoundEvent
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ThreadedSearch>
Summary:
  Event which is fired each time a name is found.
Description:
  Event exposed by the TJclPeNameSearch class which is fired each time the class
  finds the name it's searching for.
Parameters:
  Sender - Reference to the TJclPeNameSearch instance for which the event is fired.
  FileName - Name of the image file in which the function was found.
  FunctionName - The name of the function as it was found in the image file. Depending on which options you specified this name may be slightly different than the one being searched for (for example, in case).
  Option - Indicates in which section of the image file the function was found(for example, import or export section). This is quarenteed to be one of the options you specified when you started the search.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeNameSearch
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.ThreadedSearch.TJclPeNameSearch>
Summary:
  Searches a set of image files for occurences of a specific function.
Description:
  TJclPeNameSearch is a thread class which allows you to search through a set of
  image files for occurences of a specific function. You can search through both
  the import and export section ofthe image files and through a mask specify
  exactly which image files are to be searched. Occurences are reported back through
  an event.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeNameSearch.Create
Summary:
  Creates and initializes an instance of the TJclPeNameSearch class.
Description:
  Creates and initializes an instance of the TJclPeNameSearch class. The thread
  starts off in the suspended state and has to be explicitly resumed using the
  Start method to actually start the search.
Parameters:
  FunctionName - The name of the function you want to search for.
  Path - The Path parameter is the directory and file name mask, including wildcard characters that define the image files to be searched. For example, 'c:\winnt\system32\*.dll' specifies all dynamic link libraries in the c:\winnt\system32 directory. Using the OnProcessFile event you can perform additional filtering of image files.
  Options - Set of options specifying which sections of the image files are to be searched (for example, import and/or export sections). See the description of TJclPeNameSearchOptions for more information.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeNameSearch.Start
Summary:
  Starts the search operation.
Description:
  Starts the search operation. To temporarily pause the search set the Suspended
  property to True. To cancel the search set the Terminated property to True.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeNameSearch.OnFound
Summary:
  Event fired whenever an occurence of the specified function is found.
Description:
  Event which is fired whenever an occurence of the specified function is found.
  Note that the event is automatically synchronized with the main thread by firing
  it through the standard TThread method Synchronize.
  See the description of TJclPeNameSearchFoundEvent for more information.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeNameSearch.OnProcessFile
Summary:
  Event which is fired whenever the class is about to search an image file.
Description:
  Event which is fired whenever the class is about to search an image file.
  Note that the event is automatically synchronized with the main thread by firing
  it through the standard TThread method Synchronize.
  See the description of TJclPeNameSearchNotifyEvent for more information.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclRebaseImageInfo32
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
Summary:
  Record used by the PeRebaseImage function to return information about a rebase operation.
Description:
  Record used by the PeRebaseImage function to return information about
  a rebase operation.
See also:
  PeRebaseImage
Donator:
  Petr Vones
@@TJclRebaseImageInfo32.OldImageSize
  Size of the image before the rebase.
@@TJclRebaseImageInfo32.OldImageBase
  Base address of the image before the rebase.
@@TJclRebaseImageInfo32.NewImageSize
  Size of the image after the rebase.
@@TJclRebaseImageInfo32.NewImageBase
  Base address of the image after the rebase.
--------------------------------------------------------------------------------
@@TJclRebaseImageInfo64
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat>
Summary:
  Record used by the PeRebaseImage function to return information about a rebase operation.
Description:
  Record used by the PeRebaseImage function to return information about
  a rebase operation.
See also:
  PeRebaseImage
Donator:
  Petr Vones
@@TJclRebaseImageInfo64.OldImageSize
  Size of the image before the rebase.
@@TJclRebaseImageInfo64.OldImageBase
  Base address of the image before the rebase.
@@TJclRebaseImageInfo64.NewImageSize
  Size of the image after the rebase.
@@TJclRebaseImageInfo64.NewImageBase
  Base address of the image after the rebase.
--------------------------------------------------------------------------------
@@IsValidPeFile
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.Miscellaneous>
Summary:
  Determines whether a file is a valid portable executable file.
Description:
  IsValidPeFile determines whether the specified file is a valid portable executable file.
  Examples of valid PE files are Win32 .exe, .dll and .obj files as generated by
  Delphi or any other Win32 compiler.
Parameters:
  FileName - Fully qualified filename of the executable image file to test.
Result:
  If the specified file is a valid portable executable file the function returns
  True, otherwise it returns False.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeCreateNameHintTable
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.Miscellaneous>
Summary:
  TODO
Description:
  TODO
Parameters:
  FileName - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeRebaseImage
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.Miscellaneous>
Summary:
  Rebases an image.
Description:
  PeRebaseImage modifies the load address of the specified image. Rebasing all the
  images an application uses in such a manner that they can all be loaded at their
  preferred base address (load address) can dramatically reduce the load time of
  your application. This function rebases only a single image but it can easily be
  extended to allow rebasing of an entire application. Note that this function can
  take a long time to complete. Also, this function is not thread-safe.
Parameters:
  ImageName - Filename of the image file to rebase.
  NewBase - New base address for the executable module. If 0 is specified (the default) the base address is calculated according to the suggestion in the Platform SDK documentation for the RebaseImage API (address is selected based on the first character of the module name). Note that in this case if you rebase multiple images with the same initial character they will all be rebased to the same address.
  TimeStamp - Specifies the new time stamp for the image. The value must be represented in the number of seconds elapsed since midnight (00:00:00), January 1, 1970, Universal Coordinated Time, according to the system clock.
  MaxNewSize - Maximum allowed size of the rebased image. If 0 is specified (the default) the maximum size is unlimited.
Result:
  The function returns a TJclRebaseImageInfo
  record which contains information about the rebase such as the new base address
  and image size. If the function fails it raises an EWin32Error exception.
See also:
  TJclRebaseImageInfo
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeUpdateCheckSum
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.Miscellaneous>
Summary:
  Updates the image checksum.
Description:
  PeUpdateCheckSum updates the specified image's checksum value. If the routine
  succeeds it writes the calculated checksum back to the image file. If it fails
  it raises an exception.
Parameters:
  AFileName - The name of the image file for which to update the checksum.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeDoesExportFunction
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SimplePEHelpers>
Summary:
  Tests whether an image exports a specific fuction.
Description:
  PeDoesExportFunction determines whether the specified image file exports a function
  by the specified name. The Options parameter allows you to fine tune the search.
Parameters:
  FileName - Filename of the image file to test.
  FunctionName - Name of the function to search for.
  Options - Optional parameter which determine various aspects of the search such as case sensitivity. See TJclSmartCompOptions for more detailed information.
Result:
  If the image exports the specified function the function returns True, otherwise
  it returns False.
See also:
  TJclSmartCompOptions
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeIsExportFunctionForwardedEx
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SimplePEHelpers>
Summary:
  Tests whether a function is forwarded.
Description:
  PeIsExportFunctionForwardedEx detemines whether the specified function is forwarded
  to another image/function or not. If it is forwarded the ForwardedName parameter
  receives the location to which the function is forwarded.
Parameters:
  FileName - Filename of the image file to test.
  FunctionName - Name of the function to test.
  ForwardedName - If the specified function is forwarded this parameters receives a string of the format DLL.FunctionName which is where the function is forwarded to.
  Options - Optional parameters which determine various aspects of the functionname matching such as case sensitivity. See TJclSmartCompOptions for more detailed information.
Result:
  If the specified function is forwarded to another module the function returns True,
  otherwise it returns False. In the latter case the contents of the ForwardedName
  parameter is undefined.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeIsExportFunctionForwarded
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SimplePEHelpers>
Summary:
  Tests whether a function is forwarded.
Description:
  PeIsExportFunctionForwardedEx detemines whether the specified function is forwarded
  to another image/function or not.
Parameters:
  FileName - Filename of the image file to test.
  FunctionName - Name of the function to test.
  Options - Optional parameters which determine various aspects of the functionname matching such as case sensitivity. See TJclSmartCompOptions for more detailed information.
Result:
  If the specified function is forwarded to another module the function returns True,
  otherwise it returns False.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeDoesImportFunction
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SimplePEHelpers>
Summary:
  Tests whether an image imports a specific function.
Description:
  PeDoesImportFunction determines whether the specified image imports the specified
  function from a specific library. If LibraryName is left empty the function test
  if the image imports the function from any library.
Parameters:
  FileName - Filename of the image to test.
  FunctionName - Name of the function to test.
  LibraryName - Filename of the library from FunctionName is supposedly imported. If this parameter is left empty the function simply tests if the function is imported at all from any library. If however this parameter is specified the function only returns True if the function is actually imported from the specified library.
  Options - Optional parameter which determine various aspects of the functionname matching such as case sensitivity. See TJclSmartCompOptions for more detailed information.
Result:
  If the function is imported (optionally from the specified library) the function
  returns True, otherwise ut returns False.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeDoesImportLibrary
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SimplePEHelpers>
Summary:
  Tests whether an image is implicitly linked against a library.
Description:
  PeDoesImportLibrary determines whether the specified image implicitly links
  against the specified library. Thus it tests whether the image imports anything
  from the library.
Parameters:
  FileName - Filename of the image to test.
  LibraryName - Name of the library to test against.
  Recursive - If False the function only tests for direct imports (library A links directly against lbrary B). If True the function performs the test recursively and therefore includes indirect imports (library A links against library B which links against library C therefore library A links against library C).
Result:
  If the image directly imports the library the function returns True, otherwise it
  returns False.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeImportedLibraries
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SimplePEHelpers>
Summary:
  Returns a list of all libraries an image imports.
Description:
  PeImportedLibraries returns a list of all libraries which the specified image
  imports (implicitly links against).
Parameters:
  FileName - Filename of the image for which to retrieve an import list.
  LibrariesList - Receives the list of imported libraries.
  Recursive - If False the function only includes direct imports. If True the function includes indirect imports as well (library A imports library B which in turn imports library C and therefore library A indirectly imports library C).
  FullPathName - Determines whether the list of libraries includes the full path of the image files.
Result:
  If the function succeeds it returns True, otherwise it returns False. In the
  latter case the contents of the list is undefined.
Notes:
  This function preserves the contents of the libraries list.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeImportedLibrariesArray
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SimplePEHelpers>
Summary:
  Returns a list of all libraries an image imports.
Description:
  PeImportedLibrariesArray returns a list of all libraries which the specified image
  imports (implicitly links against). Note that the list only includes direct imports.
  If Lib1 imports Lib2 and Lib2 imports Lib3 then Lib3 will not be included in the
  listing for Lib1.
Parameters:
  FileName - Filename of the image for which to retrieve an import list.
  LibrariesList - Receives the list of imported libraries.
  Recursive - If False the function only includes direct imports. If True the function includes indirect imports as well (library A imports library B which in turn imports library C and therefore library A indirectly imports library C).
  FullPathName - Determines whether the list of libraries includes the full path of the image files.
Result:
  If the function succeeds it returns True, otherwise it returns False. In the
  latter case the contents of the list is undefined.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeImportedFunctions
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SimplePEHelpers>
Summary:
  Returns a list of all directly imported functions for an image.
Description:
  PeImportedFunctions returns a list of all directly imported functions by the
  specified image.
Parameters:
  FileName - Filename of the image for which to list the imports.
  FunctionsList - Receives the list of imported functions. Note that the contents of the list on entry are preserved.
  LibraryName - Name of the from which to list imports. If this parameters is empty (the default) all imports from all libraries are included. If on the other hand a library is specified only imports from that library are included. Note that the library name must include the extension.
  IncludeLibNames - If True the imported functions are prefixed by the name of the library from which they are imported. The library and function name are separated by a dot ('.').
Result:
  If the function succeeds it returns True, otherwise it returns False. In the
  latter case the contents of the list are undefined. Note that even in the case
  of success, the list may not contain any entries (the image may not import anything).
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeImportedFunctionsArray
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SimplePEHelpers>
Summary:
  Returns a list of all directly imported functions for an image.
Description:
  PeImportedFunctions returns a list of all directly imported functions by the
  specified image.
Parameters:
  FileName - Filename of the image for which to list the imports.
  FunctionsList - Receives the list of imported functions.
  LibraryName - Name of the from which to list imports. If this parameters is empty (the default) all imports from all libraries are included. If on the other hand a library is specified only imports from that library are included. Note that the library name must include the extension.
  IncludeLibNames - If True the imported functions are prefixed by the name of the library from which they are imported. The library and function name are separated by a dot ('.').
Result:
  If the function succeeds it returns True, otherwise it returns False. Note that in
  the case of success, the list may not contain any entries (the image may not import
  anything).
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeExportedFunctions
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SimplePEHelpers>
Summary:
  Returns a list of exported function from an image.
Description:
  PeExportedFunctions returns a list of functions exported from the specified image.
Parameters:
  FileName - FileName of the image for which to receive a list of exports.
  FunctionsList - Receives the list of exported functions. Note that the contents of the list upon entry are preserved.
Result:
  If the function succeeds it returns True, otherwise it returns False.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeExportedFunctionsArray
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SimplePEHelpers>
Summary:
  Returns a list of exported function from an image.
Description:
  PeExportedFunctions returns a list of functions exported from the specified image.
Parameters:
  FileName - FileName of the image for which to receive a list of exports.
  FunctionsList - Receives the list of exported functions.
Result:
  If the function succeeds it returns True, otherwise it returns False.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeGetNtHeaders
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SimplePEHelpers>
Summary:
  Returns a TImageNtHeaders record for an image.
Description:
  PeGetNtHeaders returns a TImageNtHeaders record for the specified image. A TImageNtHeaders
  record contains a lot of standard information about the image included in all
  valid portable executable files. For information about the interpretation of this
  record see "Portable Executable and Common Object File Format Specification",
  Revision 6.0 February 1999 in the MSDN library.
Parameters:
  FileName - Filename of the image for which to retrieve the TImageNtHeader.
  NtHeaders - Receives the TImageNtHeaders record.
Result:
  If the function succeeds it returns True, otherwise it returns False.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeVerifyCheckSum
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.SimplePEHelpers>
Summary:
  Verifies the checksum of a portable executable file.
Description:
  PeVerifyCheckSum verifies the correctness of the checksum of the specified image.
  The image must be a valid portable executable file. Note that 0 is considered a
  valid checksum.
Parameters:
  FileName - Filename of the image whose checksum to verify.
Result:
  If the image's checksum is correct the function returns True, otherwise it
  returns False.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeMapImgNtHeaders
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.MappedImageRoutines>
Summary:
  Returns a pointer to the TImageNtHeaders record.
Description:
  Returns a pointer to the TImageNtHeaders record for the image whose address is
  specified as the BaseAddress parameter. This record contains a signature for the
  PE image ('PE#0#0') and two subrecords for the COFF header and optional header.
Parameters:
  BaseAddress - Base address at which the image file for which you want to retrieve the TImageNtHeader record is mapped. This address is returned by the MapAndLoad and LoadLibrary API functions.
Result:
  If the function succeeds it returns a pointer to the requested TImageNtHeaders
  record. If the function fails it returns nil. Note that the returned pointer is
  only valid as long as the image file remains mapped in memory.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeMapImgLibraryName
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.MappedImageRoutines>
Summary:
  Returns the name of the image file mapped at the specified address.
Description:
  Returns the name of the image file mapped at the specified address.
Parameters:
  BaseAddress - Base address at which the image file for which you want to retrieve the name is mapped. This address is returned by the MapAndLoad and LoadLibrary API functions.
Result:
  If the function succeeds it returns the name of the image mapped at the specified
  address. If the function fails it returns an empty string.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeMapImgSections
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.MappedImageRoutines>
Summary:
  Returns a pointer to the header of the first section in an image.
Description:
  The PeMapImgSections function returns a pointer to a TImageSectionHeader record
  which describes the first section in the image file specified (indirectly) by the
  NtHeaders parameter. That pointer can be retrieved, for example, by using the
  PeMapImgNtHeaders function. For an example of how to use this function to traverse
  all the ections in an image see the implementation of the PeMapImgFindSection
  function.
Parameters:
  NtHeader - Pointer to the TImageNtHeaders record which specifies the mapped image for which to retrieve the header of the first section.
Result:
  If the function succeeds it returns a pointer to the TImageSectionHeader of the
  first section in the image. If the function fails it returns nil. Note that the
  returned pointer is valid only as long as the image remains mapped in memory.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeMapImgFindSection
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.MappedImageRoutines>
Summary:
  Searches the image, specified by NtHeaders, for a specific named section.
Description:
  Searches the image, specified by NtHeaders, for a specific named section.
Parameters:
  NtHeaders - Pointer to the TImageNtHeaders record which specifies the mapped image in which to search for a specific section.
  SectionName - Name of the section to search for. Note that the search is case insensitive.
Result:
  If the function finds the specified named section it returns a pointer to the
  section header. If the function doesn't find the named section it returns nil.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeSectionStream
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.MappedImageRoutines.TJclPeSectionStream>
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeSectionStream.Create
Summary:
  TODO
Description:
  TODO
Parameters:
  TODO - TODO
  TODO - TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeSectionStream.Write
Summary:
  TODO
Description:
  TODO
Parameters:
  TODO - TODO
  TODO - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeSectionStream.Instance
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeSectionStream.SectionHeader
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeMapImgHookItem
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.APIHooking.TJclPeMapImgHookItem>
Summary:
  The TJclPeMapImgHookItem represents a single hooked API function.
Description:
  The TJclPeMapImgHookItem represents a single hooked API function. The class
  provides detailed information about the hooked function, such as it's name and
  the image it resides in, as well as methods to unhook the function. You perform
  the initial hooking itself using the TJclPeMapImgHooks class.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeMapImgHookItem.Unhook
Summary:
  Unhooks the function.
Description:
  Call the UnHook method to unhook the function represented by this TJclPeMapImgHookItem
  instance. This will cause the import to revert to the state before the hooking took
  place and will destroy the TJclPeMapImgHookItem instance on which the method was
  invoked.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeMapImgHookItem.BaseAddress
Summary:
  Base address at which the image in which the hooked function resides, is mapped.
Description:
  Base address at which the image in which the hooked function resides, is mapped.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeMapImgHookItem.FunctionName
Summary:
  Name of the hooked function.
Description:
  Name of the hooked function.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeMapImgHookItem.ModuleName
Summary:
  Name of the image in which the hooked function resides.
Description:
  Name of the image in which the hooked function resides.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeMapImgHookItem.NewAddress
Summary:
  Address of the function that replaced the original, hooked function.
Description:
  Address of the function that replaced the original, hooked function.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeMapImgHookItem.OriginalAddress
Summary:
  Address of the original, hooked funcion.
Description:
  Address of the original, hooked funcion.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeMapImgHooks
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.APIHooking.TJclPeMapImgHooks>
Summary:
  Provides hooking and unhooking of API functions.
Description:
  The TJclPeMapImgHooks provides the functionality to hook and unhook API functions
  as well as manage a set of those hooks. The class automatically unhooks all functions
  it manages when it is destroyed. The class does not allow you to hook a single
  function more than once.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeMapImgHooks.HookImport
Summary:
  Hooks a imported function.
Description:
  The HookImports method hooks the specified function. That is, it replaces the
  imported function with the one supplied. Thereafter all calls to the original
  function anywhere in the application automatically call this new function. When
  the hook is no longer needed you should unhook the function. Destroying the
  TJclPeMapImgHooks instance automatically unhooks all functions it manages.
Parameters:
  Base - Base address at which the image, in which the function you want to hook resides, is mapped.
  ModuleName - Name of the image in which the function you want to hook resides.
  FunctionName - Name of the function you want to hook.
  NewAddress - Address of the new function which should replace the original function.
  OriginalAddress - Upon success receives the address of the function which was hooked.
Result:
  If the function succeeds it returns True and adds an item representing the hooked
  function to the list.
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeMapImgHooks.IsWin9xDebugThunk
Summary:
  TODO
Description:
  TODO
Parameters:
  P - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeMapImgHooks.ReplaceImport
Summary:
  Hooks an imported function by replacing it with the new function.
Description:
  Hooks an imported function by replacing it with the new function. Unlike the
  HookImport function this class method does not add an entry representing the
  hooked function to the list (how could it, being a class method!).
Parameters:
  Base - Base address at which the image, in which the function you want to hook resides, is mapped.
  ModuleName - Name of the image in which the function you want to hook resides.
  FromProc - Address of the function you want to hook.
  ToProc - Address of the function that is to replace the original function.
Result:
  If the function succeeds it returns True, otherwise it returns False.
Donator:
  Hallvard Vassbotn
--------------------------------------------------------------------------------
@@TJclPeMapImgHooks.UnhookByNewAddress
Summary:
  TODO
Description:
  TODO
Parameters:
  NewAddress - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeMapImgHooks.Items
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeMapImgHooks.ItemFromOriginalAddress
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclPeMapImgHooks.ItemFromNewAddress
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeDbgImgNtHeaders
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.Imageaccessunderdebugger>
Summary:
  TODO
Description:
  TODO
Parameters:
  TODO - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeDbgImgLibraryName
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.Imageaccessunderdebugger>
Summary:
  TODO
Description:
  TODO
Parameters:
  TODO - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@TJclBorUmDescription
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.Nameunmangling>
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
@@TJclBorUmDescription.Kind
  TODO
@@TJclBorUmDescription.Modifiers
  TODO
--------------------------------------------------------------------------------
@@TJclBorUmSymbolKind
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.Nameunmangling>
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
@@TJclBorUmSymbolKind.skData
  TODO
@@TJclBorUmSymbolKind.skFunction
  TODO
@@TJclBorUmSymbolKind.skConstructor
  TODO
@@TJclBorUmSymbolKind.skDestructor
  TODO
@@TJclBorUmSymbolKind.skRTTI
  TODO
@@TJclBorUmSymbolKind.skVTable
  TODO
--------------------------------------------------------------------------------
@@TJclBorUmSymbolModifier
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.Nameunmangling>
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
@@TJclBorUmSymbolModifier.smQualified
  TODO
@@TJclBorUmSymbolModifier.smLinkProc
  TODO
--------------------------------------------------------------------------------
@@TJclBorUmResult
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.Nameunmangling>
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
@@TJclBorUmResult.urOk
  TODO
@@TJclBorUmResult.urNotMangled
  TODO
@@TJclBorUmResult.urMicrosoft
  TODO
@@TJclBorUmResult.urError
  TODO
--------------------------------------------------------------------------------
@@TJclPeUmResult
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.Nameunmangling>
Summary:
  TODO
Description:
  TODO
Donator:
  Petr Vones
@@TJclPeUmResult.umNotMangled
  TODO
@@TJclPeUmResult.umBorland
  TODO
@@TJclPeUmResult.umMicrosoft
  TODO
--------------------------------------------------------------------------------
@@PeBorUnmangleName
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.Nameunmangling>
Summary:
  TODO
Description:
  TODO
Parameters:
  TODO - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeIsNameMangled
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.Nameunmangling>
Summary:
  TODO
Description:
  TODO
Parameters:
  TODO - TODO
Result:
  TODO
Donator:
  Petr Vones
--------------------------------------------------------------------------------
@@PeUnmangleName
<GROUP LibrariesProcessesandThreads.PortableExecutableFileFormat.Nameunmangling>
Summary:
  TODO
Description:
  TODO
Parameters:
  TODO - TODO
Result:
  TODO
Donator:
  Petr Vones
