Internet Shortcuts
The Internet shortcut object is used to create desktop shortcuts to Internet sites. Like shortcuts to items in the file system, Internet shortcuts take the form of an icon on the desktop. When the user clicks the icon, the browser is launched and displays the site associated with the shortcut.
The following topics are discussed.
Creating Internet Shortcuts
You can create an Internet shortcut by using a WebBrowser control or with the URL of the page.
Creating an Internet Shortcut from a WebBrowser Control
If your application hosts a WebBrowser control, you can use the Internet shortcut object to create shortcuts in the following way.
- Create an instance of the Internet shortcut object with CoCreateInstance, using a class identifier (CLSID) of CLSID_InternetShortcut.
- Pass the pointer to the WebBrowser's IUnknown interface to the Internet shortcut object with IObjectWithSite::SetSite.
- Call the Internet shortcut object's IPersistFile::Save method when you want to create a shortcut to the page being viewed by the WebBrowser control.
A shortcut will be created in the location specified in IPersistFile::Save. This location enables the WebBrowser control to restore its state, which includes the task of loading of the correct documents into framesets.
Creating an Internet Shortcut from a URL
You can also create an Internet shortcut if you have the URL of the page to which you want to link.
- Create an instance of the Internet shortcut object with CoCreateInstance, using a CLSID of CLSID_InternetShortcut.
- Use the IUniformResourceLocator::SetURL method to set the URL in the shortcut.
- Use the IPersistFile::Save method to save the shortcut file to a desired location.
Accessing Property Storage
The Internet shortcut object contains several properties that you can access through the object's IPropertySetStorage interface with the following procedure.
- Get the IPropertySetStorage interface by calling QueryInterface with IID_IPropertySetStorage.
- Access the Internet shortcut property storage set by calling IPropertySetStorage::Open with FMTID_Intshcut or FMTID_InternetSite to obtain the IPropertyStorage interface.
- Read the property storage information with IPropertyStorage::ReadMultiple by passing the appropriate property ID.
With version 4.70 or higher of Shell32.dll, you can also retrieve the IPropertySetStorage interface by calling IShellFolder::BindToStorage with the pidl parameter set to the .URL file and the riid parameter set to IID_IPropertySetStorage.
The following property IDs can be requested for FMTID_Intshcut.
PROPID | Variant Type | Description |
---|---|---|
PID_IS_URL | VT_LPWSTR | URL to which the shortcut leads |
PID_IS_NAME | VT_LPWSTR | Name of the Internet shortcut |
PID_IS_WORKINGDIR | VT_LPWSTR | Working directory for the shortcut |
PID_IS_HOTKEY | VT_UI2 | Hotkey for the shortcut |
PID_IS_SHOWCMD | VT_I4 | Show command for shortcut |
PID_IS_ICONINDEX | VT_I4 | Index of the icon |
PID_IS_ICONFILE | VT_LPWSTR | File that contains the icon |
PID_IS_WHATSNEW | VT_LPWSTR | What's New text |
PID_IS_AUTHOR | VT_LPWSTR | Author |
PID_IS_DESCRIPTION | VT_LPWSTR | Description text of site |
PID_IS_COMMENT | VT_LPWSTR | User annotated comment |
PID_IS_ROAMED | VT_BOOL | True when shortcut is roamed for first time |
The following property IDs can be requested for FMTID_InternetSite.
PROPID | Variant Type | Description |
---|---|---|
PID_INTSITE_WHATSNEW | VT_LPWSTR | What's New text |
PID_INTSITE_AUTHOR | VT_LPWSTR | Author |
PID_INTSITE_LASTVISIT | VT_FILETIME | Time site was last visited |
PID_INTSITE_LASTMOD | VT_FILETIME | Time site was last modified |
PID_INTSITE_VISITCOUNT | VT_UI4 | Number of times user has visited |
PID_INTSITE_DESCRIPTION | VT_LPWSTR | Description text of site |
PID_INTSITE_COMMENT | VT_LPWSTR | User annotated comment |
PID_INTSITE_FLAGS | VT_UI4 | Indicates use of PIDISF_ flags (see below) |
PID_INTSITE_CONTENTLEN | N/A | Not currently supported |
PID_INTSITE_CONTENTCODE | N/A | Not currently supported |
PID_INTSITE_RECURSE | N/A | Not currently supported |
PID_INTSITE_WATCH | N/A | Not currently supported |
PID_INTSITE_SUBSCRIPTION | VT_UI8 | SUBSCRIPTIONCOOKIE value for subscription manager |
PID_INTSITE_URL | VT_LPWSTR | URL to which the shortcut leads |
PID_INTSITE_TITLE | VT_LPWSTR | Title |
PID_INTSITE_CODEPAGE | VT_UI4 | Codepage of the document |
PID_INTSITE_TRACKING | N/A | Not currently supported |
PID_INTSITE_ICONINDEX | VT_I4 | Index of the icon |
PID_INTSITE_ICONFILE | VT_LPWSTR | File that contains the icon |
PID_INTSITE_ROAMED | VT_UI4 | The entry was added due to roaming |
The following are the Internet site flags.
Flag | Description |
---|---|
PIDISF_RECENTLYCHANGED | Indicates that a site was recently changed |
PIDISF_CACHEDSTICKY | Not currently supported |
PIDISF_CACHEIMAGES | Not currently supported |
PIDISF_FOLLOWALLLINKS | Not currently supported |
The following values are used for Internet roaming history.
Value of PID_INTSITE_ROAMED | Description |
---|---|
Value not set or PIDISR_UP_TO_DATE | This cache entry has not been modified by roaming. |
PIDISR_NEEDS_ADD | This cache entry was added to the cache by roaming. Set PIDISR_UP_TO_DATE once processing of the entry is complete. |
PIDISR_NEEDS_UPDATE | This cache entry already existed on the local machine, but it was updated by roaming. Set PIDISR_UP_TO_DATE once processing of the entry is complete. |
PIDISR_NEEDS_DELETE | Roaming detected that this cache entry should be deleted. For example, the user may have cleared his or her browser history. Delete the entry using DeleteUrlCacheEntry. |
Interfaces
The Internet shortcut object exposes a number of interfaces.
OLE interfaces
Shell interfaces
Functions
There are several utility functions that can be used with the Internet shortcut object.
Internet shortcut utility functions