Ver Mensaje Individual
  #1  
Antiguo 23-12-2009
_cero_ _cero_ is offline
Miembro
 
Registrado: abr 2007
Posts: 147
Reputación: 20
_cero_ Va por buen camino
Unhappy Creación de jumplist en Windows 7

Como han estado por aquí? Espero que bien. Bueno pues ese es mi problema, estoy intentando crear mis propias jumplist con funciones específicas como las de WMP12 y aunque ya logre armar un grupo de funciones que me hace esto y todas compilan y trabajan sin errores, ps simplemente no me crean las jumplist, así que quisiera que me indicaran en donde esta mi error o como hacer una.

Estoy trabajando con c++ builder 2010, y obviamente Windows 7, de antemano gracias.

Les dejo esta función, es como un resumen de las otras que debería funcionar sin embargo no lo hace.
Código:
void __fastcall TForm1::CrearJumpList()
{
/**/
    ICustomDestinationList *pcdl;
    HRESULT hr;

    hr = CoCreateInstance(CLSID_DestinationList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pcdl));

    if (!SUCCEEDED(hr)) {ShowMessage("Error"); return;}

    hr=pcdl->SetAppID(L"emp.apli.subapli.verci");

    if (!SUCCEEDED(hr)) {ShowMessage("Error"); return;}

    UINT cMinSlots;
    IObjectArray *poaRemoved;

    hr = pcdl->BeginList(&cMinSlots, IID_PPV_ARGS(&poaRemoved));

    if (!SUCCEEDED(hr)) {ShowMessage("Error"); return;}
//
    IObjectCollection *poc;

    hr=CoCreateInstance(CLSID_EnumerableObjectCollection, NULL, CLSCTX_INPROC, IID_PPV_ARGS(&poc));

    if (!SUCCEEDED(hr)) {ShowMessage("Error"); return;}

    IShellItem *psi;
    String lolo="c:\\lolo.txt";

    hr=SHCreateItemFromParsingName (lolo.c_str(), NULL, IID_PPV_ARGS(&psi));
    //hr=SHCreateItemInKnownFolder(FOLDERID_Desktop, KF_FLAG_DEFAULT, L"Microsoft_Sample_1.txt", IID_PPV_ARGS(&psi));

    if (!SUCCEEDED(hr)) {ShowMessage("Error"); return;}

    poc->AddObject(psi);
    psi->Release();

    IObjectArray *poa;

    hr = poc->QueryInterface(IID_PPV_ARGS(&poa));

    if (!SUCCEEDED(hr)) {ShowMessage("Error"); return;}

    hr = pcdl->AppendCategory(L"categoria 1", poa);
    hr=pcdl->AddUserTasks(poa);

    poa->Release();
    poc->Release();
    pcdl->CommitList();
    poaRemoved->Release();
    pcdl->Release();

    if (!SUCCEEDED(hr)) {ShowMessage("Error frecuente"); return;}

    ShowMessage("ya esta");
}
Responder Con Cita