Using Win32 functions in Visual FoxPro Image Gallery
Code examples:
How to change display settings: screen resolution, screen refresh rate
Capturing keyboard activity of another application with the Raw Input API (VFP9)
How to register custom Event Log source
Storing content of the Clipboard to a bitmap file
Attaching menu to a top-level form
Storing screen shot of a form to bitmap file
Converting Unicode data from the Clipboard to a character string using a given code page
Copying picture of the active form to the Clipboard using Enhanced Metafile API functions
Custom HttpRequest class (WinINet)
Displaying icons in the system tray (VFP9)
Building a tree of subdirectories for a given path using FindFile functions
Using Beep and Sleep functions to make the old tin buzz sing (WinNT only?)
How to activate Windows Calculator
Using IsChild() for testing ThisForm.ShowWindow property
Drawing Windows predefined bitmaps using the LoadBitmap functions
Sending email messages with Simple MAPI
Enumerating raw input devices attached to the system (keyboard, mouse, human interface device)
Retrieving information about the specified icon
How to print a bitmap file
Retrieving the User Datagram Protocol (UDP) listener table
Disabling mouse and keyboard input for the main VFP window (with the app still running)
System Image List Viewer
GDI+: copying to the Clipboard (a) image of active FoxPro window/form, (b) image file
How to view icons stored in executable files (Icon Viewer) - II
Windows Shell Icons displayed and exported to ICO files (Vista)

User rating: 0/10 (0 votes)
Rate this code sample:
  • ~
More code examples    Listed functions    Add comment     W32 Constants      Translate this page Printer friendly version of this code sample
Before you begin:
This code sample employs SHGetStockIconInfo Shell API function for retrieving information about system-defined Shell icons.

Here is a VFP form hosting ListView control with Windows Shell icons.

ICO files are neither created or required to run this code sample. For icons, the ListView connects directly to the system image list using icon index obtained through SHGetStockIconInfo call.

A Shell icon (actually any ICO resource from EXE or DLL file) can be stored to ICO file perfectly usable in VFP. Like this one, for example:

The Comment part down this page has more on it.

See also:
  • How to view icons stored in executable files
  • Displaying the associated icons and descriptions for files and folders
  • Converting image file to .ICO file
  • Storing DLL icon resources in image files
  • Storing DLL icon resources in .ICO files
  • Displaying icons in the system tray
  •  
      Members area. Log in to view this example.
     
      User name:
      Password:
     
     
      Forgot your password?
     
      Sign up for
    the Membership
     
     


    User rating: 0/10 (0 votes)
    Rate this code sample:
    • ~
    9786 bytes  
    Created: 2011-01-17 15:43:32  
    Modified: 2011-01-27 08:12:08  
    Visits in 7 days: 123  
    Listed functions:
    DestroyIcon
    GetWindowLong
    GlobalAlloc
    GlobalFree
    GlobalSize
    SendMessage
    SetWindowLong
    SHGetFileInfo
    SHGetStockIconInfo
    Printer friendly API declarations
    My comment:
    When switched to Report mode (View=3), the ListView control displays the resource file and ICO resource index for each icon displayed (szPath and iIcon members of SHSTOCKICONINFO structure).

    That reveals that Windows 7 stores Shell icons in at least 4 files residing in System32 directory:
  • Shell32.dll
  • Imageres.dll
  • Imagesp1.dll
  • Mydocs.dll

    With known resource file and resource index, saving a Shell icon to ICO file is an easy task.

    Here is another code sample on this web site that explains how. It defines VFP classes IconGroupResource and IconResource. The former creates ICO files holding multiple versions of the same icon (size & color depth vary). The latter creates ICO files holding a single icon version, for example 48x48, 8 bit.


    Selected Windows iconsDownload a small selection of Windows icons from System32\Imageres.dll library.


    The code below stores Imageres.dll Icon resources to ICO files.
    oIconGroups = CREATEOBJECT("IconGroups",;
            GETENV("SystemRoot") + "\system32\imageres.dll")

    oIconGroups.EnumIconGroupResources
    ? "Icon groups:", oIconGroups.Count

    LOCAL cTargetPath, nGroupIndex, nIconIndex
    cTargetPath = GETDIR("", "Select ICO files destination folder.")

    IF NOT EMPTY(m.cTargetPath)
            SET SAFETY OFF
            nGroupIndex = 0

            FOR EACH oIconGroup IN oIconGroups
                    oIconGroup.SaveToFile(cTargetPath +;
                            "groupicon_" + TRANSFORM(nGroupIndex) + ".ico")

                    nIconIndex = 0
                    FOR EACH oIcon IN oIconGroup.icons
                            oIcon.SaveToFile(cTargetPath +;
                                    "icon_" +;
                                    TRANSFORM(nGroupIndex) + "_" +;
                                    TRANSFORM(nIconIndex) + "_" +;
                                    TRANSFORM(oIcon.resid) + ".ico")

                            nIconIndex = nIconIndex + 1
                    NEXT
                    nGroupIndex = nGroupIndex + 1
            NEXT
            SET SAFETY ON
    ENDIF

    Storing DLL icon resources in .ICO files

    * * *
    Another Icon Viewer code sample on this web site reads icons directly from .EXE or .DLL file calling ExtractIcon and GetIconInfo functions. If pointed at Shell32.dll, that viewer displays even larger number of icons then the one presented.

    But the former has a deficiency. The Shell icons are retrieved based on their respective resource index in Shell32.dll. This index may fluctuate through OS versions. In contrast, the SHGetStockIconInfo uses OS-approved SHSTOCKICONID enumeration.
  • Word Index links for this example:
    Translate this page:
      Spanish    Portuguese    German    French    Italian  
    FreeTranslation.com offers instant, free translations of text or web pages.
    User Contributed Notes:
    There are no notes on this subject.


    Copyright 2001-2014 News2News, Inc. Before reproducing or distributing any data from this site please ask for an approval from its owner. Unless otherwise specified, this page is for your personal and non-commercial use. The information on this page is presented AS IS, meaning that you may use it at your own risk. Microsoft Visual FoxPro and Windows are trade marks of Microsoft Corp. All other trademarks are the property of their respective owners. 

    Privacy policy
    Credits: PHP (4.4.9), an HTML-embedded scripting language, MySQL (5.1.68), the Open Source standard SQL database, AceHTML Freeware Version 4, freeware HTML Editor of choice.   Hosted by Korax Online Inc.
    Last Topics Visited (54.204.66.38)
    4 sec.Function: 'InternetAttemptConnect'
    6 sec.Function: 'GetMonitorContrast'
    9 sec.Function: 'GetProcessHeap'
    Google
    Advertise here!