This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Resolving symlinks for use with Win32 API functions



Hi!

Consider the scenario where you're using Win32 API I/O routines
(CreateFile(), ReadFile(), etc.) to do file I/O, instead of the Cygwin ones
(open(), read(), etc.).  How can you resolve Cygwin symlinks (either new or
old ones) in a Cygwin-program for use with Win32 API routines?

Old ones are fairly easy to parse; just remove the "!<symlink>" string (and
then convert the remaining path using the Cygwin API) but what about new
style symlinks? 

One problem is that Windows shortcuts aren't transparent; actually they're
objects in the mind of Windows Explorer and not a Win32 invention at
all. So, in order to resolve a Windows shortcut, you need to explicitly
call a long sequence of strange functions. There is sample code in MSDN to
do this, however, this code wants to link with shell32.lib and include the
file "shlwapi.h", which is nowever to be found in Cygwin.

Any ideas?

/Jesper
-- 
-------------------------------------------------------------------------
Jesper Eskilson                                         jojo@virtutech.se
Virtutech                                         http://www.virtutech.se
-------------------------------------------------------------------------


--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]