This commit is contained in:
2024-08-07 09:16:27 -04:00
parent fdfadd5c7e
commit 5f971cf684
5200 changed files with 731717 additions and 0 deletions

57
mdiwin/DWINDOW.CPP Normal file
View File

@@ -0,0 +1,57 @@
#include <mdiwin/dwindow.hpp>
DWindow::DWindow()
: mhWnd(0)
{
}
DWindow::~DWindow()
{
if(GetHandle())::DestroyWindow(GetHandle());
}
LONG FAR PASCAL DWindow::DialogProcedure(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
int returnCode;
DWindow *pDWindow=DWindow::GetPointer(hWnd);
if(0==pDWindow)
{
if(WM_INITDIALOG==message)
{
pDWindow=(DWindow*)lParam;
DWindow::SetPointer(hWnd,pDWindow);
pDWindow->SetHandle(hWnd);
return pDWindow->DlgProc(message,wParam,lParam);
}
return FALSE;
}
returnCode=pDWindow->DlgProc(message,wParam,lParam);
if(WM_NCDESTROY==message)
{
#if defined (__LARGE__) || defined (__COMPACT__)
::RemoveProp(hWnd,"HIWORD");
#endif
::RemoveProp(hWnd,(LPSTR)"LOWORD");
pDWindow->SetHandle(0);
}
return returnCode;
}
#if defined (__LARGE__) || defined (__COMPACT__)
DWindow *DWindow::GetPointer(HWND hWnd)
{
HANDLE handleSegment;
HANDLE handleOffset;
handleSegment=::GetProp(hWnd,(LPSTR)"HIWORD");
handleOffset=::GetProp(hWnd,(LPSTR)"LOWORD");
return (DWindow*)(MK_FP(handleSegment,handleOffset));
}
void DWindow::SetPointer(HWND hWnd,DWindow *pDWindow)
{
::SetProp(hWnd,"HIWORD",(HANDLE)FP_SEG(pDWindow));
::SetProp(hWnd,"LOWORD",(HANDLE)FP_OFF(pDWindow));
}
#endif