WndClass.hIconSm = CreateSmallIcon(WndClass.hIcon);
}
- if (lpwcx->lpszMenuName != NULL)
+ if (WndClass.lpszMenuName != NULL)
{
- if (HIWORD(lpwcx->lpszMenuName))
+ if (!IS_INTRESOURCE(WndClass.lpszMenuName))
{
- RtlCreateUnicodeStringFromAsciiz(&MenuName, WndClass.lpszMenuName);
+ if (WndClass.lpszMenuName[0])
+ {
+ RtlCreateUnicodeStringFromAsciiz(&MenuName, WndClass.lpszMenuName);
+ }
}
else
{
MenuName.Buffer = (LPWSTR)WndClass.lpszMenuName;
}
- hMenu = LoadMenuA(WndClass.hInstance, lpwcx->lpszMenuName);
+ if (MenuName.Buffer != NULL)
+ hMenu = LoadMenuA(WndClass.hInstance, WndClass.lpszMenuName);
}
if (IS_ATOM(WndClass.lpszClassName))
REGISTERCLASS_ANSI,
hMenu);
- if (!IS_ATOM(WndClass.lpszMenuName))
+ if (!IS_INTRESOURCE(WndClass.lpszMenuName))
RtlFreeUnicodeString(&MenuName);
if (!IS_ATOM(WndClass.lpszClassName))
RtlFreeUnicodeString(&ClassName);
WndClass.hIconSm = CreateSmallIcon(WndClass.hIcon);
}
- if (lpwcx->lpszMenuName != NULL)
+ if (WndClass.lpszMenuName != NULL)
{
- if (HIWORD(lpwcx->lpszMenuName))
+ if (!IS_INTRESOURCE(WndClass.lpszMenuName))
{
- RtlInitUnicodeString(&MenuName, WndClass.lpszMenuName);
+ if (WndClass.lpszMenuName[0])
+ {
+ RtlInitUnicodeString(&MenuName, WndClass.lpszMenuName);
+ }
}
else
{
MenuName.Buffer = (LPWSTR)WndClass.lpszMenuName;
}
- hMenu = LoadMenuW(WndClass.hInstance, lpwcx->lpszMenuName);
+
+ if (MenuName.Buffer != NULL)
+ hMenu = LoadMenuW(WndClass.hInstance, WndClass.lpszMenuName);
}
if (IS_ATOM(WndClass.lpszClassName))
}
else
{
- DPRINT1("Class %wZ not found\n", ClassName);
+ DPRINT1("Class \"%wZ\" not found\n", ClassName);
}
SetLastWin32Error(ERROR_CANNOT_FIND_WND_CLASS);
RETURN( NULL);
}
}
- else if (! IS_INTRESOURCE(ClassName.Buffer))
+ else if (! IS_ATOM(ClassName.Buffer))
{
SetLastWin32Error(ERROR_INVALID_PARAMETER);
return NULL;