4 Jump List.
http://www.megapix.com/?p=ODK1H4HI.jpg
Esta es la característica más útil que encontré en Windows 7, y la razón de ser de este mini tutorial, es la parte que me costó entender más y aun no creo entenderla del todo, pero básicamente, las jump list son listas de accesos directos que se despliegan al hacer click derecho sobre un icono de una aplicación, estos accesos directos pueden iniciar determinados archivos, o nuestra/ otra aplicación con ciertos parámetros, parámetros que manejaremos nosotros, y que doy por supuesto que cualquiera ha manejado antes así que solo pondré el código para crear una jumplist simple que constara de un acceso y una categoría, si más adelante le descubro una que otra curiosidad ps la pondré en este mismo lugar.
Código:
PROPERTYKEY PKEY_Title;
CLSIDFromString( L"{F29F85E0-4FF9-1068-AB91-08002B27B3D9}", &PKEY_Title.fmtid );
PKEY_Title.pid = 2;
UINT cMinSlots;
ICustomDestinationList *pcdl;
IObjectCollection *poc;
IObjectArray *poaRemoved;
IObjectArray * poa;
IPropertyStore *pps;
IShellLink *psl;
CoCreateInstance( CLSID_DestinationList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS( &pcdl ) );
pcdl->BeginList( &cMinSlots, IID_PPV_ARGS( &poaRemoved ) );
CoCreateInstance( CLSID_EnumerableObjectCollection, NULL, CLSCTX_INPROC, IID_PPV_ARGS( &poc ) );
CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS( &psl ) );
psl->SetPath( Application->ExeName.c_str() );
psl->SetArguments( L"/Parametro" );
PROPVARIANT propvar;
propvar.vt = VT_LPWSTR;
propvar.pwszVal = L"Titulo";
psl->QueryInterface( IID_PPV_ARGS( &pps ) );
pps->SetValue( PKEY_Title, propvar );
pps->Commit();
pps->Release();
PropVariantClear( &propvar );
poc->AddObject( psl );
poc->QueryInterface( IID_PPV_ARGS( &poa ) );
pcdl->AppendCategory( L"Categoria Personalizada", poa );
poa->Release();
psl->Release();
poc->Release();
poaRemoved->Release();
pcdl->CommitList();
pcdl->Release();
Ejemplo:
http://www.megaupload.com/?d=OEY75RO8
Pd1. Lamento que este mini tuto termine tan abruptamente sin una explicación extensa de las Jump List y sus posibilidades, la cuestión es que yo mismo no he visto todo, sin mencionar que se me acabo el día que decidí dedicarle a este tema, así que si alguien extiende este tema bienvenido sea. Nos vemos