Click here to Skip to main content
15,886,518 members
Articles / Programming Languages / Visual Basic

Windows 7 new features: Step by step in VB.NET and C#

Rate me:
Please Sign up or sign in to vote.
4.85/5 (88 votes)
31 Aug 2010CPOL9 min read 179.3K   4.7K   211  
Explaining all the new must have features in Windows 7 to make your application look shiny and professional, like the new features of the task bar and more.
//Copyright (c) Microsoft Corporation.  All rights reserved.

using System;
using System.Collections.Generic;

namespace Microsoft.WindowsAPICodePack.Taskbar
{
    internal class ProgressBarStateSettings
    {
        internal readonly int DefaultMaxValue = 100;
        internal readonly int DefaultMinValue = 0;
        
        /// <summary>
        /// Represents a collection of name/value pairs for each HWND and it’s 
        /// current progress bar value.
        /// </summary>
        internal IDictionary<IntPtr, int> CurrentValues;

        /// <summary>
        /// Represents a collection of name/value pairs for each HWND and it’s 
        /// current progress bar max values
        /// </summary>
        internal IDictionary<IntPtr, int> MaxValues;

        /// <summary>
        /// Represents a collection of name/value pairs for each HWND and it’s 
        /// current progress bar state.
        /// </summary>
        internal IDictionary<IntPtr, TaskbarProgressBarState> States;

        internal ProgressBarStateSettings()
        {
            CurrentValues = new Dictionary<IntPtr, int>();
            MaxValues = new Dictionary<IntPtr, int>();
            States = new Dictionary<IntPtr, TaskbarProgressBarState>();
        }

        private static ProgressBarStateSettings instance;
        /// <summary>
        /// Returns a singleton instance of the ProgressBarStateSettings class
        /// </summary>
        internal static ProgressBarStateSettings Instance
        {
            get
            {
                if (instance == null)
                    instance = new ProgressBarStateSettings();

                return instance;
            }
        }

        /// <summary>
        /// Represents the HWND for the application or default window. 
        /// </summary>
        internal IntPtr DefaultHandle
        {
            get
            {
                return TaskbarManager.Instance.OwnerHandle;
            }
        }

        /// <summary>
        /// Refreshes the native taskbar with the current progressbar values for the given HWND
        /// </summary>
        /// <param name="hwnd">Current window handle</param>
        /// <param name="currentValue">Current progress bar value</param>
        /// <param name="maxValue">Current progress bar max value</param>
        internal void RefreshValue(IntPtr hwnd, int currentValue, int maxValue)
        {
            TaskbarManager.Instance.TaskbarList.SetProgressValue(hwnd, (ulong)currentValue, (ulong)maxValue);
        }

        /// <summary>
        /// Refreshes the native taskbar with the current progressbar state for the given HWND
        /// </summary>
        /// <param name="hwnd">Current window handle</param>
        /// <param name="state">Current progress bar state</param>
        internal void RefreshState(IntPtr hwnd, TaskbarProgressBarState state)
        {
            TaskbarManager.Instance.TaskbarList.SetProgressState(hwnd, (TBPFLAG)state);
        }

    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

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


Written By
Software Developer IDS
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions