Ejemplo n.º 1
0
/* Adds a saved session to the Windows 7 jumplist. */
void add_session_to_jumplist(const char * const sessionname)
{
    if (add_to_jumplist_registry(sessionname) == JUMPLISTREG_OK) {
        update_jumplist_from_registry();
    }
    else {
        /* Make sure we don't leave the jumplist dangling. */
        clear_jumplist();
    }
}
Ejemplo n.º 2
0
/* Removes a saved session from the Windows jumplist. */
void remove_session_from_jumplist(const char * const sessionname)
{
    if ((osMajorVersion < 6) || (osMajorVersion == 6 && osMinorVersion < 1))
        return;                        /* do nothing on pre-Win7 systems */

    if (remove_from_jumplist_registry(sessionname) == JUMPLISTREG_OK) {
        update_jumplist_from_registry();
    } else {
        /* Make sure we don't leave the jumplist dangling. */
        clear_jumplist();
    }
}
Ejemplo n.º 3
0
HRESULT
setup_jumplist(wstring appid, int n, wstring titles[], wstring cmds[], wstring icons[], int ii[])
{
  OSVERSIONINFO ver;
  ver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
  GetVersionEx(&ver);
  //printf("setup_jumplist\n");

  // if running under the machine older than Windows 7, silently return.
  if (!((ver.dwMajorVersion == 6 && ver.dwMinorVersion >= 1) || ver.dwMajorVersion >= 7)) {
    return S_OK;
  }

  HRESULT hr = S_OK;

  hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
  if (FAILED(hr))
    return hr;

  hr = clear_jumplist();
  hr = S_OK;
  if (SUCCEEDED(hr)) {
    IObjectCollection * pobjs = init_jumplist();
    //printf("setup_jumplist items %p\n", pobjs);
    if (pobjs) {
      for (int i = 0; i < n; ++i) {
        hr = register_task(pobjs, titles[i], cmds[i], icons[i], ii[i]);
        if (FAILED(hr)) {
          break;
        }
      }
      if (SUCCEEDED(hr))
        hr = create_jumplist(appid, pobjs);

      pobjs->lpVtbl->Release((void *)pobjs);
    }
  }

  CoUninitialize();
  return hr;
}