PWND pWindow;
DIALOGINFO* dlgInfo = (DIALOGINFO *)GetWindowLongPtrW( hWnd, DWLP_ROS_DIALOGINFO );
- if(!dlgInfo && create)
+ pWindow = ValidateHwnd( hWnd );
+ if (!pWindow)
{
- pWindow = ValidateHwnd( hWnd );
- if (!pWindow)
- {
- SetLastError( ERROR_INVALID_WINDOW_HANDLE );
- return NULL;
- }
+ return NULL;
+ }
- if (pWindow && pWindow->cbwndExtra >= DLGWINDOWEXTRA && hWnd != GetDesktopWindow())
- {
- if (!(dlgInfo = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*dlgInfo) )))
- return NULL;
+ if (!dlgInfo && create)
+ {
+ if (pWindow && pWindow->cbwndExtra >= DLGWINDOWEXTRA && hWnd != GetDesktopWindow())
+ {
+ if (!(dlgInfo = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*dlgInfo) )))
+ return NULL;
- SETDLGINFO( hWnd, dlgInfo );
+ SETDLGINFO( hWnd, dlgInfo );
- NtUserxSetDialogPointer( hWnd, dlgInfo );
- }
- else
+ NtUserxSetDialogPointer( hWnd, dlgInfo );
+ }
+ else
+ {
+ return NULL;
+ }
+ }
+ else
+ {
+ if (!(pWindow->state & WNDS_DIALOGWINDOW) || pWindow->fnid != FNID_DIALOG)
{
- return NULL;
+ ERR("Wrong window class for Dialog!\n");
+ return NULL;
}
}
return dlgInfo;
WPARAM wParam,
LPARAM lParam)
{
+ if ( hDlg == HWND_TOPMOST || hDlg == HWND_BROADCAST ) return 0; // ReactOS
HWND hwndCtrl = GetDlgItem( hDlg, nIDDlgItem );
if (hwndCtrl) return SendMessageA( hwndCtrl, Msg, wParam, lParam );
else return 0;
WPARAM wParam,
LPARAM lParam)
{
+ if ( hDlg == HWND_TOPMOST || hDlg == HWND_BROADCAST ) return 0; // ReactOS
HWND hwndCtrl = GetDlgItem( hDlg, nIDDlgItem );
if (hwndCtrl) return SendMessageW( hwndCtrl, Msg, wParam, lParam );
else return 0;
int nIDDlgItem,
LPCSTR lpString)
{
- return SendDlgItemMessageA( hDlg, nIDDlgItem, WM_SETTEXT, 0, (LPARAM)lpString );
+ HWND hwndCtrl = GetDlgItem( hDlg, nIDDlgItem ); // ReactOS Themes
+ if (hwndCtrl) return SetWindowTextA( hwndCtrl, lpString );
+ return FALSE;
}
int nIDDlgItem,
LPCWSTR lpString)
{
- return SendDlgItemMessageW( hDlg, nIDDlgItem, WM_SETTEXT, 0, (LPARAM)lpString );
+ HWND hwndCtrl = GetDlgItem( hDlg, nIDDlgItem ); // ReactOS Themes
+ if (hwndCtrl) return SetWindowTextW( hwndCtrl, lpString );
+ return FALSE;
}