home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2001 September
/
Chip_2001-09_cd1.bin
/
zkuste
/
delphi
/
kolekce
/
d123456
/
DFS.ZIP
/
ItemProp.txt
< prev
next >
Wrap
Text File
|
2001-06-28
|
7KB
|
111 lines
ItemProp Unit v3.54
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:
The lateset version will always be available on the web at:
http://www.delphifreestuff.com
If you have any questions, comments or suggestions, please use the Delphi
Free Stuff Support Forum at:
http://www.delphifreestuff.com/discus/
If, for some reason, you can not use the web-based support forum, you can
email me at bstowers@delphifreestuff.com. However, the support forum will
always take precedence over direct email since it provides a resource that
others can use when they have a problem. Every message posted to the forum
is emailed directly to this account, so emailing me directly will not get
your message to me any faster. It will only make the message less important
for me to respond to since only one person (you) is benefiting from it
instead of everyone interested. Having said all that, please do email me
directly if it is regarding something that isn't really support related,
i.e. just to say thanks (as novel as that idea is).
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):
* The functions which take multiple files in a TStringList parameter will not
work unless they share a common directory (passed in the Directory param).
This means that as long as the files exist on the same drive, it will work
(the root of the common drive is the Directory param). But, if the files
are on different drives, it will not work (passing '' in Directory). I've
spent several hours trying to make it work, but have had no luck at all.
Revision History:
3.54: + Uninitialized var parameter was causing some things to fail (like
property dialogs for drives).
+ Fixed a problem on Win2000 systems.
+ Updated for Delphi 6 compatibility.
3.53: + Updated for C++Builder 5 compatibility.
3.52: + DisplayPropertiesDialog might not have worked on Windows 2000. It
appears that one of the API calls involved isn't working correctly on
Win2K. I've implemented a work-around.
3.51: + Had some problems with the Application.Hint code throwing range check
exceptions. Think I've got it straightened out now.
3.50: + Daniel U. Thibault added the ability to set Application.Hint based on
the selected context menu item's verb (name) and help text. The verb
is the short hint, the help text is the long hint. See the updated
demo for an example of using this. Very cool, and many thanks to him
for sharing. Argh. I've just discovered that Praful Kapadia also
sent me code to do the same thing. Thanks to him as well.
+ I've added two new boolean parameters to all of the DisplayContextMenu
functions: ShowRename and RenameSelected. ShowRename indicates
whether the Rename context menu item should be shown on the menu or
not. RenameSelected is a var parameter that, upon return from the
function, indicates whether the user picked the rename function. The
Rename menu item is special because the context menu has no idea how
to show user interface for renaming something, or even how to do it
(the thing may not be a file, it could be a virtual folder). So,
it doesn't even attempt to handle the situation, you must. Also,
ShowRename only cause the Rename item to appear on the context menu
if the item reports that it can be renamed (i.e. 'C:\' can not be
renamed, so the item wouldn't show up for it regardless of ShowRename's
value).
3.12: + Updated for C++Builder 4 compatibility.
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