ItemProp Unit v3.11

Description:
  A unit to provide access to a file's context menu, properties dialog, and
  default action. Given only a filename, the context menu or properties dialog
  can be displayed, or the default action taken (i.e. Open).  This hides the
  messy parts of using the Shell Namespace API.

Contact Information:
  Feel free to contact me if you have any questions, comments or suggestions
  at bstowers@pobox.com.
  The lateset version will always be available on the web at:
    http://www.pobox.com/~bstowers/delphi/

Credits:
  * Many thanks to Matt Ginzton for his help with the multiple item support.  I
    had been having no luck at all with it for a long time, and he was kind
    enough to provide me with working C++ code to translate.  Turns out my
    attempts had been right all along, I simply had a parameter declared
    incorrectly.  Still, I probably would have never found it without good,
    working code to start from.

Known Issues (bugs):
  * There are no known issues at this time.

Revision History:
3.11:  + Under certain circumstances, trying to perform the default action on
         a file that didn't have one could cause access violations.  Fixed.
3.10:  + Added PeformVerb functions.  Allows you to peform any action that is
         supported by the system.  For example, the properties dialog is
         displayed by performing the verb 'properties'.  Other common verbs are
         'delete', 'cut', 'copy', etc.
3.00:  + Support for multiple items in all functions.  All items must be in the
         same directory.
         * The "normal" functions (those that take filenames) can now contain
           wildcards.
         * New "list" functions that operate like the "normal" functions, but
           take a Path parameter and a TStringList of items in that directory
           to operate on.
         * The "PIDL" functions now require an extra parameter to indicate the
           number of PIDLs being passed.  Simply pass the first PIDL in your
           array as the PIDL parameter.
2.21:  + Cut and Copy context menu commands now work properly on all
         installations.  Many thanks to Matt Ginzton <magi@cs.stanford.edu> for
         figuring this out and letting me know the solution (OLEInitialize).
2.20:  + Rewrite for Delphi 4 compatibility and features (overloaded funcs). 
       + Added support for IContextMenu3.                                    
2.10:  + Added new versions of all functions that accept PIDLs instead of
         filenames.  If you don't know what a PIDL is, then you don't need
         these functions.  There useful when you are fooling around with the
         Shell Namespace API functions.
2.00:  + Send To menu now works.  Thanks to Matt Ginzton
         (magi@cs.stanford.edu) for sending me C++ code snippet.
1.03:  + Some code clean up.
       + Really works with C++Builder now. Thanks again to Michael Trier.
1.02:  + Small change for C++Builder compatibility.  Thanks to Michael Trier.
1.01:  + Updated for Delphi 3 compatibility.
       + Now works properly with drives.  Just pass something like C:\, but
         NOT C:
1.00:  + Initial release
