mirror of
https://github.com/reactos/reactos.git
synced 2025-03-01 03:45:16 +00:00
[SHELL32][SHELL32_APITEST][SDK] Implement SHEnumerateUnreadMailAccountsW (#7619)
Implementing missing features... JIRA issue: CORE-19278 - Move function definition from stubs.cpp into utils.cpp. - Add prototype to <shellapi.h>.
This commit is contained in:
parent
0bb8b46ba8
commit
aa52c3f5eb
6 changed files with 76 additions and 15 deletions
|
@ -30,21 +30,6 @@ SHGetUnreadMailCountW(HKEY hKeyUser,
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Unimplemented
|
|
||||||
*/
|
|
||||||
EXTERN_C HRESULT
|
|
||||||
WINAPI
|
|
||||||
SHEnumerateUnreadMailAccountsW(HKEY user,
|
|
||||||
DWORD idx,
|
|
||||||
LPWSTR mailaddress,
|
|
||||||
INT mailaddresslen)
|
|
||||||
{
|
|
||||||
FIXME("SHEnumerateUnreadMailAccountsW(%p %d %p %d) stub\n",
|
|
||||||
user, idx, mailaddress, mailaddresslen);
|
|
||||||
return E_NOTIMPL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Unimplemented
|
* Unimplemented
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -901,6 +901,39 @@ SheRemoveQuotesW(LPWSTR psz)
|
||||||
return psz;
|
return psz;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
* SHEnumerateUnreadMailAccountsW [SHELL32.287]
|
||||||
|
*
|
||||||
|
* @see https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shenumerateunreadmailaccountsw
|
||||||
|
*/
|
||||||
|
EXTERN_C
|
||||||
|
HRESULT WINAPI
|
||||||
|
SHEnumerateUnreadMailAccountsW(
|
||||||
|
_In_opt_ HKEY hKeyUser,
|
||||||
|
_In_ DWORD dwIndex,
|
||||||
|
_Out_writes_(cchMailAddress) PWSTR pszMailAddress,
|
||||||
|
_In_ INT cchMailAddress)
|
||||||
|
{
|
||||||
|
if (!hKeyUser)
|
||||||
|
hKeyUser = HKEY_CURRENT_USER;
|
||||||
|
|
||||||
|
HKEY hKey;
|
||||||
|
LSTATUS error = RegOpenKeyExW(hKeyUser,
|
||||||
|
L"Software\\Microsoft\\Windows\\CurrentVersion\\UnreadMail",
|
||||||
|
0, KEY_ENUMERATE_SUB_KEYS, &hKey);
|
||||||
|
if (error)
|
||||||
|
return HRESULT_FROM_WIN32(error);
|
||||||
|
|
||||||
|
FILETIME FileTime;
|
||||||
|
error = RegEnumKeyExW(hKey, dwIndex, pszMailAddress, (PDWORD)&cchMailAddress, NULL, NULL,
|
||||||
|
NULL, &FileTime);
|
||||||
|
if (error)
|
||||||
|
*pszMailAddress = UNICODE_NULL;
|
||||||
|
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
return error ? HRESULT_FROM_WIN32(error) : S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* SHFindComputer [SHELL32.91]
|
* SHFindComputer [SHELL32.91]
|
||||||
*
|
*
|
||||||
|
|
|
@ -34,6 +34,7 @@ list(APPEND SOURCE
|
||||||
SHParseDisplayName.cpp
|
SHParseDisplayName.cpp
|
||||||
SHRestricted.cpp
|
SHRestricted.cpp
|
||||||
SHShouldShowWizards.cpp
|
SHShouldShowWizards.cpp
|
||||||
|
SHEnumerateUnreadMailAccountsW.cpp
|
||||||
She.cpp
|
She.cpp
|
||||||
ShellExec_RunDLL.cpp
|
ShellExec_RunDLL.cpp
|
||||||
ShellExecCmdLine.cpp
|
ShellExecCmdLine.cpp
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* PROJECT: ReactOS API tests
|
||||||
|
* LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
|
||||||
|
* PURPOSE: Test for SHEnumerateUnreadMailAccountsW
|
||||||
|
* COPYRIGHT: Copyright 2025 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "shelltest.h"
|
||||||
|
|
||||||
|
START_TEST(SHEnumerateUnreadMailAccountsW)
|
||||||
|
{
|
||||||
|
HRESULT hr;
|
||||||
|
WCHAR szMailAddress[MAX_PATH];
|
||||||
|
HKEY hKey;
|
||||||
|
LSTATUS error;
|
||||||
|
DWORD dwDisposition;
|
||||||
|
|
||||||
|
error = RegCreateKeyExW(HKEY_CURRENT_USER,
|
||||||
|
L"Software\\Microsoft\\Windows\\CurrentVersion\\UnreadMail\\example.com",
|
||||||
|
0, NULL, 0, KEY_WRITE, NULL, &hKey, &dwDisposition);
|
||||||
|
ok_long(error, ERROR_SUCCESS);
|
||||||
|
|
||||||
|
szMailAddress[0] = UNICODE_NULL;
|
||||||
|
hr = SHEnumerateUnreadMailAccountsW(NULL, 0, szMailAddress, _countof(szMailAddress));
|
||||||
|
ok_hex(hr, S_OK);
|
||||||
|
ok(szMailAddress[0] != UNICODE_NULL, "szMailAddress was empty\n");
|
||||||
|
|
||||||
|
if (dwDisposition == REG_CREATED_NEW_KEY)
|
||||||
|
{
|
||||||
|
RegDeleteKeyW(HKEY_CURRENT_USER,
|
||||||
|
L"Software\\Microsoft\\Windows\\CurrentVersion\\UnreadMail\\example.com");
|
||||||
|
}
|
||||||
|
}
|
|
@ -34,6 +34,7 @@ extern void func_SHChangeNotify(void);
|
||||||
extern void func_SHCreateDataObject(void);
|
extern void func_SHCreateDataObject(void);
|
||||||
extern void func_SHCreateFileDataObject(void);
|
extern void func_SHCreateFileDataObject(void);
|
||||||
extern void func_SHCreateFileExtractIconW(void);
|
extern void func_SHCreateFileExtractIconW(void);
|
||||||
|
extern void func_SHEnumerateUnreadMailAccountsW(void);
|
||||||
extern void func_She(void);
|
extern void func_She(void);
|
||||||
extern void func_ShellExec_RunDLL(void);
|
extern void func_ShellExec_RunDLL(void);
|
||||||
extern void func_ShellExecCmdLine(void);
|
extern void func_ShellExecCmdLine(void);
|
||||||
|
@ -84,6 +85,7 @@ const struct test winetest_testlist[] =
|
||||||
{ "SHCreateDataObject", func_SHCreateDataObject },
|
{ "SHCreateDataObject", func_SHCreateDataObject },
|
||||||
{ "SHCreateFileDataObject", func_SHCreateFileDataObject },
|
{ "SHCreateFileDataObject", func_SHCreateFileDataObject },
|
||||||
{ "SHCreateFileExtractIconW", func_SHCreateFileExtractIconW },
|
{ "SHCreateFileExtractIconW", func_SHCreateFileExtractIconW },
|
||||||
|
{ "SHEnumerateUnreadMailAccountsW", func_SHEnumerateUnreadMailAccountsW },
|
||||||
{ "She", func_She },
|
{ "She", func_She },
|
||||||
{ "ShellExec_RunDLL", func_ShellExec_RunDLL },
|
{ "ShellExec_RunDLL", func_ShellExec_RunDLL },
|
||||||
{ "ShellExecCmdLine", func_ShellExecCmdLine },
|
{ "ShellExecCmdLine", func_ShellExecCmdLine },
|
||||||
|
|
|
@ -652,6 +652,13 @@ SHTestTokenMembership(
|
||||||
_In_ ULONG ulRID);
|
_In_ ULONG ulRID);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
HRESULT WINAPI
|
||||||
|
SHEnumerateUnreadMailAccountsW(
|
||||||
|
_In_opt_ HKEY hKeyUser,
|
||||||
|
_In_ DWORD dwIndex,
|
||||||
|
_Out_writes_(cchMailAddress) PWSTR pszMailAddress,
|
||||||
|
_In_ INT cchMailAddress);
|
||||||
|
|
||||||
#ifdef UNICODE
|
#ifdef UNICODE
|
||||||
#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE
|
#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE
|
||||||
#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE
|
#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE
|
||||||
|
|
Loading…
Reference in a new issue