]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - windows/winjump.c
SetCurrentProcessExplicitAppUserModelID to fix jumplist/removable media bug
[PuTTY.git] / windows / winjump.c
index e5bca9358ead86ddb74a8c48c7b138afe9842486..85963a32fff23cc319b0ae910cc1d2514b439118 100644 (file)
@@ -714,3 +714,33 @@ void remove_session_from_jumplist(const char * const sessionname)
         clear_jumplist();
     }
 }
+
+/* Set Explicit App User Model Id to fix removable media error with
+   jump lists */
+
+BOOL set_explicit_app_user_model_id()
+{
+  DECL_WINDOWS_FUNCTION(static, HRESULT, SetCurrentProcessExplicitAppUserModelID,
+                        (PCWSTR));
+
+  static HMODULE shell32_module = 0;
+
+    if (!shell32_module)
+    {
+        shell32_module = load_system32_dll("Shell32.dll");
+        GET_WINDOWS_FUNCTION(shell32_module, SetCurrentProcessExplicitAppUserModelID);
+    }
+
+    if (p_SetCurrentProcessExplicitAppUserModelID)
+    {
+        if (p_SetCurrentProcessExplicitAppUserModelID(L"SimonTatham.PuTTY") == S_OK)
+        {
+         return TRUE;
+        }
+        return FALSE;
+    }
+    /* Function doesn't exist, which is ok for Pre-7 systems */
+
+    return TRUE;
+
+}