[SHELL32][SDK] Implement LinkWindow_RegisterClass (#8878)

Implementing missing features...
JIRA issue: CORE-19278
- Implement LinkWindow_RegisterClass
  function by using "superclassing".
- Add prototype to <undocshell.h>.
This commit is contained in:
Katayama Hirofumi MZ
2026-04-23 22:50:03 +09:00
committed by GitHub
parent 081a6366df
commit d6cc284435
3 changed files with 33 additions and 0 deletions

View File

@@ -2189,3 +2189,31 @@ SHELL32_AliasTranslatePidl(
{
return SHELL32_ReparentAsAliasPidl(NULL, NULL, pidl, ppidlNew, dwFlags) ? S_OK : E_FAIL;
}
/*************************************************************************
* LinkWindow_RegisterClass (SHELL32.258)
*
* https://learn.microsoft.com/en-us/windows/win32/shell/linkwindow-registerclass
*/
EXTERN_C BOOL WINAPI LinkWindow_RegisterClass(VOID)
{
INITCOMMONCONTROLSEX iccx = { sizeof(iccx), ICC_LINK_CLASS };
InitCommonControlsEx(&iccx);
WNDCLASSEXW wcx = { sizeof(wcx) };
if (!GetClassInfoExW(NULL, L"SysLink", &wcx))
return FALSE;
/* Superclassing! */
wcx.lpszClassName = L"Link Window";
return RegisterClassExW(&wcx) || (GetLastError() == ERROR_CLASS_ALREADY_EXISTS);
}
/*************************************************************************
* LinkWindow_UnregisterClass (SHELL32.259)
*/
EXTERN_C BOOL WINAPI LinkWindow_UnregisterClass(_In_ DWORD dwUnused)
{
/* Do nothing. This is correct. */
return TRUE;
}

View File

@@ -2640,6 +2640,7 @@ HRESULT WINAPI SHSetLocalizedName(LPCWSTR pszPath, LPCWSTR pszResModule, int ids
return S_OK;
}
#ifndef __REACTOS__ // See ../utils.cpp
/*************************************************************************
* LinkWindow_RegisterClass (SHELL32.258)
*/
@@ -2657,6 +2658,7 @@ BOOL WINAPI LinkWindow_UnregisterClass(DWORD dwUnused)
FIXME("()\n");
return TRUE;
}
#endif
/*************************************************************************
* SHFlushSFCache (SHELL32.526)

View File

@@ -910,6 +910,9 @@ Activate_RunDLL(
BOOL WINAPI SHSettingsChanged(LPCVOID unused, LPCWSTR pszKey);
BOOL WINAPI LinkWindow_RegisterClass(VOID);
BOOL WINAPI LinkWindow_UnregisterClass(_In_ DWORD dwUnused);
/*****************************************************************************
* Shell32 resources
*/