Commit 7fb48093 authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

oleaut32: Implement GetAltMonthNames().

parent a3ab5470
...@@ -935,3 +935,112 @@ HCURSOR WINAPI OleIconToCursor( HINSTANCE hinstExe, HICON hIcon) ...@@ -935,3 +935,112 @@ HCURSOR WINAPI OleIconToCursor( HINSTANCE hinstExe, HICON hIcon)
/* FIXME: make an extended conversation from HICON to HCURSOR */ /* FIXME: make an extended conversation from HICON to HCURSOR */
return CopyCursor(hIcon); return CopyCursor(hIcon);
} }
/***********************************************************************
* GetAltMonthNames (OLEAUT32.@)
*/
HRESULT WINAPI GetAltMonthNames(LCID lcid, LPOLESTR **str)
{
static const WCHAR ar_month1W[] = {0x645,0x62d,0x631,0x645,0};
static const WCHAR ar_month2W[] = {0x635,0x641,0x631,0};
static const WCHAR ar_month3W[] = {0x631,0x628,0x64a,0x639,' ',0x627,0x644,0x627,0x648,0x644,0};
static const WCHAR ar_month4W[] = {0x631,0x628,0x64a,0x639,' ',0x627,0x644,0x62b,0x627,0x646,0x64a,0};
static const WCHAR ar_month5W[] = {0x62c,0x645,0x627,0x62f,0x649,' ',0x627,0x644,0x627,0x648,0x644,0x649,0};
static const WCHAR ar_month6W[] = {0x62c,0x645,0x627,0x62f,0x649,' ',0x627,0x644,0x62b,0x627,0x646,0x64a,0x629,0};
static const WCHAR ar_month7W[] = {0x631,0x62c,0x628,0};
static const WCHAR ar_month8W[] = {0x634,0x639,0x628,0x627,0x646,0};
static const WCHAR ar_month9W[] = {0x631,0x645,0x636,0x627,0x646,0};
static const WCHAR ar_month10W[] = {0x634,0x648,0x627,0x643,0};
static const WCHAR ar_month11W[] = {0x630,0x648,' ',0x627,0x644,0x642,0x639,0x62f,0x629,0};
static const WCHAR ar_month12W[] = {0x630,0x648,' ',0x627,0x644,0x62d,0x62c,0x629,0};
static const WCHAR *arabic_hijri[] =
{
ar_month1W,
ar_month2W,
ar_month3W,
ar_month4W,
ar_month5W,
ar_month6W,
ar_month7W,
ar_month8W,
ar_month9W,
ar_month10W,
ar_month11W,
ar_month12W,
NULL
};
static const WCHAR pl_month1W[] = {'s','t','y','c','z','n','i','a',0};
static const WCHAR pl_month2W[] = {'l','u','t','e','g','o',0};
static const WCHAR pl_month3W[] = {'m','a','r','c','a',0};
static const WCHAR pl_month4W[] = {'k','w','i','e','t','n','i','a',0};
static const WCHAR pl_month5W[] = {'m','a','j','a',0};
static const WCHAR pl_month6W[] = {'c','z','e','r','w','c','a',0};
static const WCHAR pl_month7W[] = {'l','i','p','c','a',0};
static const WCHAR pl_month8W[] = {'s','i','e','r','p','n','i','a',0};
static const WCHAR pl_month9W[] = {'w','r','z','e',0x15b,'n','i','a',0};
static const WCHAR pl_month10W[] = {'p','a',0x17a,'d','z','i','e','r','n','i','k','a',0};
static const WCHAR pl_month11W[] = {'l','i','s','t','o','p','a','d','a',0};
static const WCHAR pl_month12W[] = {'g','r','u','d','n','i','a',0};
static const WCHAR *polish_genitive_names[] =
{
pl_month1W,
pl_month2W,
pl_month3W,
pl_month4W,
pl_month5W,
pl_month6W,
pl_month7W,
pl_month8W,
pl_month9W,
pl_month10W,
pl_month11W,
pl_month12W,
NULL
};
static const WCHAR ru_month1W[] = {0x44f,0x43d,0x432,0x430,0x440,0x44f,0};
static const WCHAR ru_month2W[] = {0x444,0x435,0x432,0x440,0x430,0x43b,0x44f,0};
static const WCHAR ru_month3W[] = {0x43c,0x430,0x440,0x442,0x430,0};
static const WCHAR ru_month4W[] = {0x430,0x43f,0x440,0x435,0x43b,0x44f,0};
static const WCHAR ru_month5W[] = {0x43c,0x430,0x44f,0};
static const WCHAR ru_month6W[] = {0x438,0x44e,0x43d,0x44f,0};
static const WCHAR ru_month7W[] = {0x438,0x44e,0x43b,0x44f,0};
static const WCHAR ru_month8W[] = {0x430,0x432,0x433,0x443,0x441,0x442,0x430,0};
static const WCHAR ru_month9W[] = {0x441,0x435,0x43d,0x442,0x44f,0x431,0x440,0x44f,0};
static const WCHAR ru_month10W[] = {0x43e,0x43a,0x442,0x44f,0x431,0x440,0x44f,0};
static const WCHAR ru_month11W[] = {0x43d,0x43e,0x44f,0x431,0x440,0x44f,0};
static const WCHAR ru_month12W[] = {0x434,0x435,0x43a,0x430,0x431,0x440,0x44f,0};
static const WCHAR *russian_genitive_names[] =
{
ru_month1W,
ru_month2W,
ru_month3W,
ru_month4W,
ru_month5W,
ru_month6W,
ru_month7W,
ru_month8W,
ru_month9W,
ru_month10W,
ru_month11W,
ru_month12W,
NULL
};
TRACE("%#x, %p\n", lcid, str);
if (PRIMARYLANGID(LANGIDFROMLCID(lcid)) == LANG_ARABIC)
*str = (LPOLESTR *)arabic_hijri;
else if (PRIMARYLANGID(LANGIDFROMLCID(lcid)) == LANG_POLISH)
*str = (LPOLESTR *)polish_genitive_names;
else if (PRIMARYLANGID(LANGIDFROMLCID(lcid)) == LANG_RUSSIAN)
*str = (LPOLESTR *)russian_genitive_names;
else
*str = NULL;
return S_OK;
}
...@@ -319,7 +319,7 @@ ...@@ -319,7 +319,7 @@
329 stdcall VarCyMulI8(int64 int64 ptr) 329 stdcall VarCyMulI8(int64 int64 ptr)
330 stdcall VarDateFromUdate(ptr long ptr) 330 stdcall VarDateFromUdate(ptr long ptr)
331 stdcall VarUdateFromDate(double long ptr) 331 stdcall VarUdateFromDate(double long ptr)
332 stub GetAltMonthNames 332 stdcall GetAltMonthNames(long ptr)
333 stdcall VarI8FromUI1(long long) 333 stdcall VarI8FromUI1(long long)
334 stdcall VarI8FromI2(long long) 334 stdcall VarI8FromI2(long long)
335 stdcall VarI8FromR4(float long) 335 stdcall VarI8FromR4(float long)
......
...@@ -640,6 +640,42 @@ static void test_VarFormatFromTokens(void) ...@@ -640,6 +640,42 @@ static void test_VarFormatFromTokens(void)
SysFreeString(bstr); SysFreeString(bstr);
} }
static void test_GetAltMonthNames(void)
{
LPOLESTR *str, *str2;
HRESULT hr;
str = (void *)0xdeadbeef;
hr = GetAltMonthNames(0, &str);
ok(hr == S_OK, "Unexpected return value %08x\n", hr);
ok(str == NULL, "Got %p\n", str);
str = (void *)0xdeadbeef;
hr = GetAltMonthNames(MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT), &str);
ok(hr == S_OK, "Unexpected return value %08x\n", hr);
ok(str == NULL, "Got %p\n", str);
str = NULL;
hr = GetAltMonthNames(MAKELCID(MAKELANGID(LANG_ARABIC, SUBLANG_ARABIC_EGYPT), SORT_DEFAULT), &str);
ok(hr == S_OK, "Unexpected return value %08x\n", hr);
ok(str != NULL, "Got %p\n", str);
str2 = NULL;
hr = GetAltMonthNames(MAKELCID(MAKELANGID(LANG_ARABIC, SUBLANG_ARABIC_EGYPT), SORT_DEFAULT), &str2);
ok(hr == S_OK, "Unexpected return value %08x\n", hr);
ok(str2 == str, "Got %p\n", str2);
str = NULL;
hr = GetAltMonthNames(MAKELCID(MAKELANGID(LANG_RUSSIAN, SUBLANG_DEFAULT), SORT_DEFAULT), &str);
ok(hr == S_OK, "Unexpected return value %08x\n", hr);
ok(str != NULL, "Got %p\n", str);
str = NULL;
hr = GetAltMonthNames(MAKELCID(MAKELANGID(LANG_POLISH, SUBLANG_DEFAULT), SORT_DEFAULT), &str);
ok(hr == S_OK, "Unexpected return value %08x\n", hr);
ok(str != NULL, "Got %p\n", str);
}
START_TEST(varformat) START_TEST(varformat)
{ {
hOleaut32 = GetModuleHandleA("oleaut32.dll"); hOleaut32 = GetModuleHandleA("oleaut32.dll");
...@@ -650,4 +686,5 @@ START_TEST(varformat) ...@@ -650,4 +686,5 @@ START_TEST(varformat)
test_VarFormat(); test_VarFormat();
test_VarWeekdayName(); test_VarWeekdayName();
test_VarFormatFromTokens(); test_VarFormatFromTokens();
test_GetAltMonthNames();
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment