- Cleanup error codes for Classes and Menus.
- Update (Sync/Port) User32:Dialog to Wine Staging 1.9.11, see CORE-11368.
- Now pass exactly the same tests as windows, except for the two ToDos lines 1596 & 1617. The other test failures are on wine for not being compatible!
svn path=/trunk/; revision=71904
- if (Status == STATUS_OBJECT_NAME_NOT_FOUND)
- {
- EngSetLastError(ERROR_CLASS_DOES_NOT_EXIST);
- }
- else
+ if (Status != STATUS_OBJECT_NAME_NOT_FOUND)
{
SetLastNtError(Status);
}
{
SetLastNtError(Status);
}
Link);
if (Class == NULL)
{
Link);
if (Class == NULL)
{
- EngSetLastError(ERROR_CLASS_DOES_NOT_EXIST);
return (RTL_ATOM)0;
}else{TRACE("Step 4: 0x%p\n",Class );}
return (RTL_ATOM)0;
}else{TRACE("Step 4: 0x%p\n",Class );}
ERR("Class \"%wZ\" not found\n", ClassName);
}
ERR("Class \"%wZ\" not found\n", ClassName);
}
- EngSetLastError(ERROR_CANNOT_FIND_WND_CLASS);
&Link);
if (ClassAtom == (RTL_ATOM)0)
{
&Link);
if (ClassAtom == (RTL_ATOM)0)
{
+ EngSetLastError(ERROR_CLASS_DOES_NOT_EXIST);
TRACE("UserUnregisterClass: No Class found.\n");
return FALSE;
}
TRACE("UserUnregisterClass: No Class found.\n");
return FALSE;
}
Class = IntGetAndReferenceClass(ClassName, Cs->hInstance, FALSE);
if(!Class)
{
Class = IntGetAndReferenceClass(ClassName, Cs->hInstance, FALSE);
if(!Class)
{
+ EngSetLastError(ERROR_CANNOT_FIND_WND_CLASS);
ERR("Failed to find class %wZ\n", ClassName);
goto cleanup;
}
ERR("Failed to find class %wZ\n", ClassName);
goto cleanup;
}
if (!IntGetAtomFromStringOrAtom(&ClassName,
&ClassAtom))
{
if (!IntGetAtomFromStringOrAtom(&ClassName,
&ClassAtom))
{
+ EngSetLastError(ERROR_CANNOT_FIND_WND_CLASS);
#define HAS_THINFRAME(Style, ExStyle) \
(((Style) & WS_BORDER) || (!((Style) & (WS_CHILD | WS_POPUP))))
#define HAS_THINFRAME(Style, ExStyle) \
(((Style) & WS_BORDER) || (!((Style) & (WS_CHILD | WS_POPUP))))
-#define HAS_MENU(pWnd,style) ((((style) & (WS_CHILD | WS_POPUP)) != WS_CHILD) && IntIsMenu(UlongToHandle(pWnd->IDMenu)))
+#define HAS_MENU(pWnd,style) ((((style) & (WS_CHILD | WS_POPUP)) != WS_CHILD) && (pWnd->IDMenu) && IntIsMenu(UlongToHandle(pWnd->IDMenu)))
#define IntIsDesktopWindow(WndObj) \
(WndObj->spwndParent == NULL)
#define IntIsDesktopWindow(WndObj) \
(WndObj->spwndParent == NULL)
p += GET_WORD(p) / sizeof(WORD);
}
else info->data = NULL;
p += GET_WORD(p) / sizeof(WORD);
}
else info->data = NULL;
{
pos.x += MulDiv(template.x, xBaseUnit, 4);
pos.y += MulDiv(template.y, yBaseUnit, 8);
{
pos.x += MulDiv(template.x, xBaseUnit, 4);
pos.y += MulDiv(template.y, yBaseUnit, 8);
- if (!(template.style & (WS_CHILD|DS_ABSALIGN))) ClientToScreen( owner, &pos );
+ //
+ // REACTOS : Need an owner to be passed!!!
+ //
+ if (!(template.style & (WS_CHILD|DS_ABSALIGN)) && owner ) ClientToScreen( owner, &pos );
}
if ( !(template.style & WS_CHILD) )
{
}
if ( !(template.style & WS_CHILD) )
{
if (template.style & WS_VISIBLE && !(GetWindowLongPtrW( hwnd, GWL_STYLE ) & WS_VISIBLE))
{
ShowWindow( hwnd, SW_SHOWNORMAL ); /* SW_SHOW doesn't always work */
if (template.style & WS_VISIBLE && !(GetWindowLongPtrW( hwnd, GWL_STYLE ) & WS_VISIBLE))
{
ShowWindow( hwnd, SW_SHOWNORMAL ); /* SW_SHOW doesn't always work */
IntNotifyWinEvent(EVENT_SYSTEM_DIALOGSTART, hwnd, OBJID_WINDOW, CHILDID_SELF, 0);
}
return hwnd;
IntNotifyWinEvent(EVENT_SYSTEM_DIALOGSTART, hwnd, OBJID_WINDOW, CHILDID_SELF, 0);
}
return hwnd;
BOOL result = FALSE;
/* Perform DIALOGINFO initialization if not done */
BOOL result = FALSE;
/* Perform DIALOGINFO initialization if not done */
- if(!(dlgInfo = DIALOG_get_info( hDlg, TRUE ))) return 0;
+ if(!(dlgInfo = DIALOG_get_info( hDlg, Msg == WM_NCCREATE ))) return 0;
SetWindowLongPtrW( hDlg, DWLP_MSGRESULT, 0 );
SetWindowLongPtrW( hDlg, DWLP_MSGRESULT, 0 );
BOOL result = FALSE;
/* Perform DIALOGINFO initialization if not done */
BOOL result = FALSE;
/* Perform DIALOGINFO initialization if not done */
- if(!(dlgInfo = DIALOG_get_info( hDlg, TRUE ))) return 0;
+ if(!(dlgInfo = DIALOG_get_info( hDlg, Msg == WM_NCCREATE ))) return 0;
SetWindowLongPtrW( hDlg, DWLP_MSGRESULT, 0 );
SetWindowLongPtrW( hDlg, DWLP_MSGRESULT, 0 );