Click here to Skip to main content
Licence CPOL
First Posted 27 Jun 2008
Views 10,641
Downloads 95
Bookmarked 8 times

A wrapper class for creating a shortcut (.lnk) and a bookmark (.url) and attaching an online icon to it

By | 6 Jul 2008 | Article
A ready-to-use wrapper class for creating a shortcut (.lnk file) and a bookmark (.url file) and finally attaching an online icon resource to it.

Introduction

If your application needs to create an internet favorite (.url) or desktop shortcut (.lnk), there are a lot of online references. But if:

  1. an icon must be attached to the file and
  2. the icon is an online resource that needs to be downloaded first

this article could be a help.

The CShortcutNBookmark class encapsulates every job needed: creating a .url or .lnk file, downloading the icon file, and assigning that to a shortcut file. Call the high level functions if you are in a haste. Otherwise look into the low level functions for your study or for more modifications.

Using the code

Just include the .h, and .cpp, then call a function. That's all.

Add "ShortcutNBookmark.h" and "ShortcutNBookmark.cpp" to your project. Add "wininet.lib" in [Project setting]>[Link].

  1. Adding a Favorite (".url" file) (maybe under a button):
  2. CShortcutNBookmark csnb;
    csnb.AddFavoriteNAttachIcon("GrooveDive"/*title or file name*/, 
             "http://www.groovedive.com"/*target url*/, 
             "http://www.groovedive.com/image/tulip.ico"/*icon url*/);
    
    // csnb.AddFavorite("GrooveDive", "http://www.groovedive.com");
    // is also available. this function will use the icon of your application
  3. Creating a Desktop Shortcut (".lnk" file) (maybe under a button):
  4. CShortcutNBookmark csnb;
    csnb.CreateDesktopShortcutNAttachIcon("GrooveDive"/*title or file name*/,
            "http://www.groovedive.com"/*target url*/, 
            "http://www.groovedive.com/image/tulip.ico"/*icon url*/);
    
    // csnb.CreateDesktopShortcut("GrooveDive", "http://www.groovedive.com");
    // is also available. this function will use the icon of your application

Notice

In some cases, the compilation fails with the following link error message:

shell32.lib(shguid.obj) : 
      fatal error LNK1103: debugging information corrupt; recompile module

One reason could be the new SDK library.

  1. Go to [Tools]>[Option]>[Directories]>[Library files]
  2. Place "C:\Program Files\Microsoft Visual Studio\VC98\LIB" (old library) higher than "C:\PROGRAM FILES\MICROSOFT PLATFORM SDK\LIB" (new library)

Note that in Vista, downloading fails due to enhanced security. But there are some folders of low security and the CShortcutNBookmark class downloads files under that path.

History

  • 2008.06.28: Created.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

jangtimjang

Team Leader
An Online Market
Korea (Republic Of) Korea (Republic Of)

Member

Software engineer having worked 8 years.
The main skill would be C++, ATL, COM
But for the past three years I have been digging on Web service related skill - .Net MS-SQL etc in current company.
My other interest is business, playing traditional music, dealing with people and evolutionary biology.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
-- There are no messages in this forum --
Permalink | Advertise | Privacy | Mobile
Web01 | 2.5.120528.1 | Last Updated 6 Jul 2008
Article Copyright 2008 by jangtimjang
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid