I. Quelles sont les nouveautés de la barre des tâches de Windows 7 ?

La nouvelle barre de tâches de Windows 7 est le résultat de plusieurs années d'évolution. Elle rationalise un certain nombre de scenarii utilisateur incluant :

  • Le lancement rapide d'applications,
  • La bascule rapide entre chaque application et fenêtre à partir d'une simple application, (Vignette)
  • La gestion récente et fréquente des destinations utilisateurs, (Jump-List)
  • L'accès à des tâches communes,
  • Le rapport de progression et notifications d'états au travers de boutons de la barre tâches (Superposition d'icône), et
  • Le contrôle de l'application sans sortir de la barre de tâches à partir de vignettes.
Pour ajouter une tâche en C++
Sélectionnez
HRESULT hr;

CComPtr<ICustomDestinationList> customDest;
hr=customDest.CoCreateInstance (CLSID_DestinationList,NULL,CLSCTX_INPROC_SERVER);
if (FAILED(hr))
	return;
	
//Définir l'appID pour la liste 
hr=customDest->SetAppID (L"Test Windows 7");
if (FAILED(hr))
	return;

//Débuter
UINT *pcMaxSlots=new UINT();
IObjectArray *ptrobjectArray;
hr=customDest->BeginList (pcMaxSlots,IID_IObjectArray,(void **)&ptrobjectArray);
if (FAILED(hr))
	return;
	
CComPtr<IObjectCollection> ptrCollection;
hr=ptrCollection.CoCreateInstance (CLSID_EnumerableObjectCollection,NULL,CLSCTX_INPROC_SERVER);
if (FAILED(hr))
	return ;

CComPtr<IShellLinkW> ptrlink;
hr=ptrlink.CoCreateInstance (CLSID_ShellLink,NULL,CLSCTX_INPROC_SERVER);
if (FAILED(hr))
	return;
LPCWSTR pathFile=L"C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\IDE\\devenv.exe";
hr=ptrlink->SetPath (pathFile);
if (FAILED(hr))
	return;
	
ptrlink->SetDescription (L"ceci est une description");
ptrlink->SetIconLocation (pathFile,0);

CComQIPtr<IPropertyStore> pPropStore = ptrlink;
PROPVARIANT pv;
if ( !pPropStore )
	return;
InitPropVariantFromString ( L"Visual Studio 2010", &pv );
 
// configure le titre
	
pPropStore->SetValue (PKEY_Title, pv );
PropVariantClear ( &pv );
 
//Sauvegarde des modifications
pPropStore->Commit();

//Ajout de l'objet à la collection
hr=ptrCollection->AddObject (ptrlink);
if (FAILED(hr))
	return;
	
CComQIPtr<IObjectArray> ptrTache=ptrCollection ;
			
hr=customDest->AddUserTasks (ptrTache);
if (FAILED(hr))
	return;
	
//Ajouter la liste récente
hr=customDest->AppendKnownCategory (KDC_RECENT);
if (FAILED(hr))
	return;

hr=customDest->CommitList ();
if (FAILED(hr))
	return;
Pour plus d'infos :