1  #ifndef __WINDOWSHANDLE_SBP__


2  #define __WINDOWSHANDLE_SBP__


3 


4  #ifdef _WIN64


5  Declare Function _System_GetWindowLongPtr Lib "user32" Alias "GetWindowLongPtrA" (hWnd As HWND, nIndex As Long) As LONG_PTR


6  Declare Function _System_SetWindowLongPtr Lib "user32" Alias "SetWindowLongPtrA" (hWnd As HWND, nIndex As Long, l As LONG_PTR) As LONG_PTR


7  #else


8  Declare Function _System_GetWindowLongPtr Lib "user32" Alias "GetWindowLongA" (hWnd As HWND, nIndex As Long) As LONG_PTR


9  Declare Function _System_SetWindowLongPtr Lib "user32" Alias "SetWindowLongA" (hWnd As HWND, nIndex As Long, l As LONG_PTR) As LONG_PTR


10  #endif


11  Declare Function _System_GetParent Lib "user32" Alias "GetParent" (hWnd As HWND) As HWND


12  Declare Function _System_SetParent Lib "user32" Alias "SetParent" (hWnd As HWND) As HWND


13  Declare Function _System_GetMenu Lib "user32" Alias "GetMenu" (hWnd As HWND) As HMENU


14  Declare Function _System_SetMenu Lib "user32" Alias "SetMenu" (hWnd As HWND) As HMENU


15  Declare Function _System_InvalidateRect Lib "user32" Alias "InvalidateRect" (hWnd As HWND, ByRef Rect As RECT, bErase As BOOL) As BOOL


16  Declare Function _System_InvalidateRgn Lib "user32" Alias "InvalidateRgn" (hWnd As HWND, hRgn As HRGN, bErase As BOOL) As BOOL


17  Declare Function _System_ValidateRect Lib "user32" Alias "ValidateRect" (hWnd As HWND, ByRef Rect As RECT) As BOOL


18  Declare Function _System_ValidateRgn Lib "user32" Alias "ValidateRgn" (hWnd As HWND, hRgn As HRGN) As BOOL


19  Declare Function _System_BeginPaint Lib "user32" Alias "BeginPaint" (hWnd As HWND, ByRef ps As PAINTSTRUCT) As HDC


20  Declare Function _System_EndPaint Lib "user32" Alias "EndPaint" (hWnd As HWND, ByRef lpPaint As PAINTSTRUCT) As HDC


21  Declare Function _System_ClientToScreen Lib "user32" Alias "ClientToScreen" (hWnd As HWND, ByRef lpPoint As POINTAPI) As BOOL


22  Declare Function _System_ScreenToClient Lib "user32" Alias "ScreenToClient" (hWnd As HWND, ByRef lpPoint As POINTAPI) As BOOL


23  Declare Function _System_CreateCaret Lib "user32" Alias "CreateCaret" (hWnd As HWND, hBitmap As HBITMAP, nWidth As Long, nHeight As Long) As BOOL


24  Declare Function _System_HideCaret Lib "user32" Alias "HideCaret" (hWnd As HWND) As BOOL


25  Declare Function _System_ShowCaret Lib "user32" Alias "ShowCaret" (hWnd As HWND) As BOOL


26  Declare Function _System_DrawMenuBar Lib "user32" Alias "DrawMenuBar" (hwnd As HWND) As BOOL


27  Declare Function _System_GetWindowRect Lib "user32" Alias "DrawMenuBar" (hWnd As HWND, ByRef Rect As RECT) As BOOL


28  Declare Function _System_IsWindow Lib "user32" Alias "IsWindow" (hWnd As HWND) As BOOL


29  Declare Function _System_Isiconic Lib "user32" Alias "Isiconic" (hWnd As HWND) As BOOL


30  Declare Function _System_GetClientRect Lib "user32" Alias "GetClientRect" (hWnd As HWND, ByRef lpRect As RECT) As BOOL


31 


32  Class WindowHandle


33  hwnd As HWND


34  Public


35  Sub WindowHandle()


36  hwnd = 0


37  End Sub


38 


39  Sub WindowHandle(hwndNew As HWND)


40  hwnd = hwndNew


41  End Sub


42 


43  Sub WindowHandle(ByRef wnd As WindowHandle)


44  hwnd = wnd.hwnd


45  End Sub


46 


47  Sub Operator =(hwndNew As HWND)


48  hwnd = hwndNew


49  End Sub


50 


51  Const Function HWnd() As HWND


52  Return hwnd


53  End Function


54 


55  Const Function Operator() As HWND


56  Return hwnd


57  End Function


58 


59  Function BringToTop() As Boolean


60  Return BringWindowToTop(hwnd) As Boolean


61  End Function


62 


63  Function BeginPaint(ByRef ps As PAINTSTRUCT) As HDC


64  Return _System_BeginPaint(hwnd, ps)


65  End Function


66 


67  Const Function ChildFromPoint(x As Long, y As Long) As HWND


68  Return ChildWindowFromPoint(hwnd, x, y)


69  End Function


70 


71  Const Function ChildFromPointEx(x As Long, y As Long, flags As DWord) As HWND


72  Return ChildWindowFromPointEx(hwnd, x, y, flags)


73  End Function


74 


75  Const Function ClientToScreen(ByRef pt As POINTAPI) As Boolean


76  Return _System_ClientToScreen(hwnd, pt) As Boolean


77  End Function


78 


79  Function Close() As Boolean


80  Return CloseWindow(hwnd) As Boolean


81  End Function


82 


83  Function CreateCaret(hbmp As HBITMAP, width As Long, height As Long) As Boolean


84  Return _System_CreateCaret(hwnd, hbmp, width, hegiht) As Boolean


85  End Function


86 


87  Function Destroy() As Boolean


88  Return DestroyWindow(hwnd) As Boolean


89  End Function


90 


91  Function DrawMenuBar() As Boolean


92  Return _System_DrawMenuBar(hwnd) As Boolean


93  End Function


94 


95  Function EnableScrollBar(SBFlags As DWord, arrows As DWord) As Boolean


96  Return EnableScrollBar(hwnd, SBFlags, arrows) As Boolean


97  End Function


98 


99  Function Enable(enable As Boolean) As Boolean


100  Return EnableWindow(hwnd, enable) As Boolean


101  End Function


102 


103  Function EndPaint(ByRef ps As PAINTSTRUCT) As Boolean


104  Return _System_EndPaint(hwnd, ps) As Boolean


105  End Function


106 


107  Const Function EnumChilds(enumFunc As WNDENUMPROC, lp As LPARAM) As Boolean


108  Return EnumChildWindows(hwnd, enumFunc, lp) As Boolean


109  End Function


110 


111  Function Flash(invert As Boolean) As Boolean


112  Return FlashWindow(hwnd, invert) As Boolean


113  End Function


114 


115  Const Function GetClassLongPtr(index As Long) As LONG_PTR


116  Return GetClassLongPtr(hwnd, index)


117  End Function


118 


119  Const Function GetClassName(className As PSTR, maxCount As Long) As Long


120  Return GetClassName(className, maxCount)


121  End Function


122 


123  Const Function GetClientRect(ByRef rc As RECT) As Boolean


124  Return _System_GetClientRect(hwnd, rc) As Boolean


125  End Function


126 


127  Const Function GetContextHelpId() As DWord


128  Return GetWindowContextHelpId(hwnd)


129  End Function


130 


131  Function GetDC() As HDC


132  Return GetDC(hwnd)


133  End Function


134 


135  Function GetDCEx(hrgnClip As HRGN, flags As DWord) As HDC


136  Return GetDCEx(hwnd, hrgnClip, flags)


137  End Function


138 


139  Const Function GetDlgCtrlID() As Long


140  Return GetDlgCtrlID(hwnd)


141  End Function


142 


143  Const Function GetDlgItem(idDlgItem As Long) As WindowHandle


144  Return GetDlgItem(hwnd, idDlgItem)


145  End Function


146 


147  Const Function GetDlgItemText(idDlgItem As Long, ps As PSTR, maxCount As Long) As Long


148  Return GetDlgItemText(hwnd, idDlgItem, ps, maxCount)


149  End Function


150 


151  Const Function GetMenu() As HMENU


152  Return _System_GetMenu(hwnd)


153  End Function


154 


155  Const Function GetParent() As WindowHandle


156  Dim w As WindowHandle(_System_GetParent(hwnd))


157  Return w


158  End Function


159 


160  Const Function GetProp(psz As PCSTR) As HANDLE


161  Return GetProp(hwnd, psz)


162  End Function


163 


164  Const Function GetProp(atom As ATOM) As HANDLE


165  Return GetProp(hwnd, atom As ULONG_PTR As PCSTR)


166  End Function


167 


168  Const Function GetScrollInfo(fnBar As Long, ByRef si As SCROLLINFO) As Boolean


169  Return GetScrollInfo(hwnd, fnBar, si) As Boolean


170  End Function


171 


172  Const Function GetSystemMenu(revert As Boolean) As HMENU


173  Return GetSystemMenu(hwnd, revert)


174  End Function


175 


176  Const Function GetUpdateRect(ByRef rc As RECT, erase As Boolean) As Boolean


177  Return GetUpdateRact(hwnd, rc, erase) As Boolean


178  End Function


179 


180  Const Function GetUpdateRgn(hrgn As HRGN, erase As Boolean) As Boolean


181  Return GetUpdateRgn(hwnd, hrgn, erase) As Boolean


182  End Function


183 


184  Const Function GetWindow(cmd As DWord) As WindowHandle


185  Return GetWindow(hwnd, cmd)


186  End Function


187 


188  Function GetWindowDC() As HDC


189  Return GetWindowDC(hwnd)


190  End Function


191 


192  Const Function GetWindowLongPtr(index As Long) As LONG_PTR


193  Return _System_GetWindowLongPtr(hwnd, index)


194  End Function


195 


196  Const Function GetWindowPlasement(ByRef wndpl As WINDOWPLACEMENT) As Boolean


197  Return GetWindowPlasement(hwnd, wndpl) As Boolean


198  End Function


199 


200  Const Function GetWindowRect(ByRef rc As RECT) As Boolean


201  Return _System_GetWindowRect(rc) As Boolean


202  End Function


203 


204  Const Function GetText(ps As PSTR, maxCount As Long) As Boolean


205  Return GetWindowText(ps, maxCount) As Boolean


206  End Function


207 


208  Const Function GetTextLength() As Long


209  Return GetWindowTextLength(hwnd)


210  End Function


211 


212  Const Function GetWindowThreadId() As DWord


213  Return GetWindowProcessThreadId(hwnd, 0)


214  End Function


215 


216  Const Function GetWindowProcessThreadId(ByRef processId As DWord) As DWord


217  Return GetWindowProcessThreadId(hwnd, processId)


218  End Function


219 


220  Function HideCaret() As Boolean


221  Return _System_HideCaret(hwnd) As Boolean


222  End Function


223 


224  Function InvalidateRect(ByRef rc As RECT, erace As Boolean) As Boolean


225  Return _System_InvalidateRect(hwnd, rc, erace) As Boolean


226  End Function


227 


228  Function InvalidateRect(ByRef rc As RECT) As Boolean


229  Return _System_InvalidateRect(hwnd, rc, TRUE) As Boolean


230  End Function


231 


232  Function InvalidateRgn(hrgn As HRGN, erace As Boolean) As Boolean


233  Return _System_InvalidateRgn(hwnd, hrgn, erace) As Boolean


234  End Function


235 


236  Function InvalidateRgn(hrgn As HRGN) As Boolean


237  Return _System_InvalidateRgn(hwnd, hrgn, TRUE) As Boolean


238  End Function


239 


240  Function Invalidate(erace As Boolean) As Boolean


241  Return _System_InvalidateRect(hwnd, ByVal 0, erace) As Boolean


242  End Function


243 


244  Function Invalidate() As Boolean


245  Return _System_InvalidateRect(hwnd, ByVal 0, TRUE) As Boolean


246  End Function


247 


248  Const Function IsChild(hwnd As HWND) As Boolean


249  Return IsChild(This.hwnd, hwnd) As Boolean


250  End Function


251 


252  Const Function IsDialogMessage(ByRef msg As MSG) As Boolean


253  Return IsDialogMessage(hwnd, msg) As Boolean


254  End Function


255 


256  Const Function IsIconic() As Boolean


257  Return _System_IsIconic(hwnd) As Boolean


258  End Function


259 


260  Const Function IsWindow() As Boolean


261  Return _System_IsWindow(hwnd) As Boolean


262  End Function


263 


264  Const Function IsEnabled() As Boolean


265  Return IsWindowEnabled(hwnd) As Boolean


266  End Function


267 


268  Const Function IsUnicode() As Boolean


269  Return IsWindowUnicode(hwnd) As Boolean


270  End Function


271 


272  Const Function IsVisible() As Boolean


273  Return IsWindowVisible(hwnd) As Boolean


274  End Function


275 


276  Const Function IsZoomed() As Boolean


277  Return IsZoomed(hwnd) As Boolean


278  End Function


279 


280  Function KillTimer(idEvent As ULONG_PTR) As Boolean


281  Return KillTimer(idEvent) As Boolean


282  End Function


283 


284  Function LockUpdate() As Boolean


285  Return LockWindowUpdate(hwnd) As Boolean


286  End Function


287 


288  Function MapPoints(hwndTo As HWND, pPoints As *POINTAPI, cPoints As DWord) As Long


289  Return MapWindowPoints(hwnd, hwndTo, pPoints, cPoints)


290  End Function


291 


292  Function MapPoints(hwndTo As HWND, ByRef rc As RECT) As Long


293  Return MapWindowPoints(hwnd, hwndTo, VarPtr(rc) As *POINTAPI, 2)


294  End Function


295 


296  Const Function MessageBox(text As PCSTR, caption As PCSTR, uType As DWord) As Long


297  Return MessageBox(hwnd, text, caption, uType)


298  End Function


299 


300  Const Function MessageBox(text As PCSTR, caption As PCSTR) As Long


301  Return MessageBox(hwnd, text, caption, MB_OK)


302  End Function


303 


304  Const Function MessageBox(text As PCSTR) As Long


305  Return MessageBox(hwnd, text, 0, MB_OK)


306  End Function


307 


308  Function Move(x As Long, y As Long, width As Long, height As Long, repaint As Boolean) As Boolean


309  Return MoveWindow(hwnd, x, y, width, height, repaint) As Boolean


310  End Function


311 


312  Function Move(x As Long, y As Long, width As Long, height As Long) As Boolean


313  Return MoveWindow(hwnd, x, y, width, height, TRUE) As Boolean


314  End Function


315 


316  Function Move(ByRef rc As RECT, repeaint As Boolean) As Boolean


317  With rc


318  Return MoveWindow(hwnd, .left, .top, .right  .left, .bottom  .top, repaint) As Boolean


319  End With


320  End Function


321 


322  Function Move(ByRef rc As RECT) As Boolean


323  With rc


324  Return MoveWindow(hwnd, .left, .top, .right  .left, .bottom  .top, TRUE) As Boolean


325  End With


326  End Function


327 


328  Function OpenClipboard() As Boolean


329  Return OpenClipboard(hwnd) As Boolean


330  End Function


331 


332  Function OpenIcon() As Boolean


333  Return OpenIcon(hwnd) As Boolean


334  End Function


335 


336  Function PostMessage(msg As DWord, wp As WPARAM, lp As LPARAM) As Boolean


337  Return PostMessage(hwnd, msg, wp, lp) As Boolean


338  End Function


339 


340  Function PostMessage(msg As DWord) As Boolean


341  Return PostMessage(hwnd, msg, 0, 0) As Boolean


342  End Function


343 


344  Function RedrawWindow(ByRef rcUpdate As RECT, hrgnUpdate As HRGN, flags As DWord) As Boolean


345  Return RedrawWindow(hwnd, rcUpdatre, hrgnUpdate, flags) As Boolean


346  End Function


347 


348  Function ReleaseDC(hdc As HDC) As Boolean


349  Return ReleaseDC(hwnd, hdc) As Boolean


350  End Function


351 


352  Function RemoveProp(psz As PCSTR) As HANDLE


353  Return RemoveProp(hwnd, psz)


354  End Function


355 


356  Function RemoveProp(atom As ATOM) As HANDLE


357  Return RemoveProp(hwnd, atom As ULONG_PTR As PCSTR)


358  End Function


359 


360  Const Function ScreenToClient(ByRef pt As POINTAPI) As Boolean


361  Return _System_ScreenToClient(hwnd, pt) As Boolean


362  End Function


363 


364  Function Scroll(dx As Long, dy As Long, ByRef rcScroll As RECT, ByRef rcClip As RECT, hrgnUpdate As HRGN, ByRef rcUpdate As RECT, flags As DWord) As Boolean


365  Return ScrollWindowEx(hwnd, dx, dy, rcScroll, rcClip, hrgnUpdate, rcUpdate, flags) As Boolean


366  End Function


367 


368  Function SendDlgItemMessage(idDlgItem As Long, msg As DWord, wp As WPARAM, lp As LPARAM) As LRESULT


369  Return SendDlgItemMessage(hwnd, idDlgItem, wp, lp)


370  End Function


371 


372  Function SendDlgItemMessage(idDlgItem As Long, msg As DWord) As LRESULT


373  Return SendDlgItemMessage(hwnd, idDlgItem, 0, 0)


374  End Function


375 


376  Function SendMessage(msg As DWord, wp As WPARAM, lp As LPARAM) As LRESULT


377  Return SendMessage(hwnd, msg, wp, lp)


378  End Function


379 


380  Function SendMessage(msg As DWord) As LRESULT


381  Return SendMessage(hwnd, msg, 0, 0)


382  End Function


383 


384  Function SetActiveWindow() As HWND


385  Return SetActiveWindow(hwnd)


386  End Function


387 


388  Function SetDlgItemText(idDlgItem As Long, psz As PCSTR) As Boolean


389  Return SetDlgItemText(hwnd, idDlgItem, psz) As Boolean


390  End Function


391 


392  Function SetCapture() As HWND


393  Return SetCapture(hwnd) As HWND


394  End Function


395 


396  Function SetClassLongPtr(index As Long, newLong As LONG_PTR) As LONG_PTR


397  Return SetClassLongPtr(hwnd, index, newLong)


398  End Function


399 


400  Function SetFocus() As HWND


401  Return SetFocus(hwnd)


402  End Function


403 


404  Function SetForeground() As Boolean


405  Return SetForegroundWindow(hwnd) As Boolean


406  End Function


407 


408  Function SetMenu(hmenu As HMENU) As Boolean


409  Return _System_SetMenu(hwnd, hmenu) As Boolean


410  End Function


411 


412  Function SetParent(hwndNewParent As HWND) As HWND


413  Return _System_SetParent(hwnd, hwndNewParent)


414  End Function


415 


416  Function SetProp(psz As PCSTR, hData As HANDLE) As Boolean


417  Return SetProp(hwnd, psz, hData) As Boolean


418  End Function


419 


420  Function SetProp(atom As ATOM, hData As HANDLE) As Boolean


421  Return SetProp(atom As ULONG_PTR As PCSTR, hData) As Boolean


422  End Function


423 


424  Function SetScrollInfo(fnBar As Long, ByRef si As SCROLLINFO, redraw As Boolean) As Boolean


425  Return SetScrollInfo(hwnd, fnBar, si, redraw) As Boolean


426  End Function


427 


428  Function SetScrollInfo(fnBar As Long, ByRef si As SCROLLINFO) As Boolean


429  Return SetScrollInfo(hwnd, fnBar, si, TRUE) As Boolean


430  End Function


431 


432  Function SetTimer(idEvent As ULONG_PTR, elapse As DWord, timerFunc As TIMERPROC) As ULONG_PTR


433  Return SetTmer(hwnd, idEvent, elapse, timerFunc)


434  End Function


435 


436  Function SetTimer(idEvent As ULONG_PTR, elapse As DWord) As ULONG_PTR


437  Return SetTmer(hwnd, idEvent, elapse, 0)


438  End Function


439 


440  Function SetContextHelpId(contextHelpId As DWord) As Boolean


441  Return SetContextHelpId(hwnd, contextHelpId) As Boolean


442  End Function


443 


444  Function SetWindowLongPtr(index As Long, newLong As LONG_PTR) As LONG_PTR


445  Return _System_SetWindowLongPtr(hwnd, index, newLong)


446  End Function


447 


448  Function SetWindowPlacement(ByRef wndpl As WINDOWPLACEMENT) As Boolean


449  Return SetWindowPlacement(hwnd, wndpl) As Boolean


450  End Function


451 


452  Function SetPos(hwndInsertAfter As HWND, x As Long, y As Long, cx As Long, cy As Long, flags As DWord) As Boolean


453  Return SetWindowPos(hwnd, hwndInsertAfter, x, y, cx, cy, flags) As Boolean


454  End Function


455 


456  Function SetPos(hwndInsertAfter As HWND, ByRef rc As RECT, flags As DWord) As Boolean


457  With rc


458  Return SetWindowPos(hwnd, hwndInsertAfter, .left, .top, .right  .left, .bottom  .top, flags) As Boolean


459  End With


460  End Function


461 


462  Function SetRgn(hrgn As HRGN, redraw As Boolean) As Boolean


463  Return SetWindowRgn(hwnd, hrgn, redraw) As Boolean


464  End Function


465 


466  Function SetRgn(hrgn As HRGN) As Boolean


467  Return SetWindowRgn(hwnd, hrgn, TRUE) As Boolean


468  End Function


469 


470  Function SetText(psz As PCSTR) As Boolean


471  Return SetWindowText(hwnd, psz) As Boolean


472  End Function


473 


474  Function ShowCaret() As Boolean


475  Return _System_ShowCaret(hwnd) As Boolean


476  End Function


477 


478  Function ShowScrollBar(bar As DWord, show As Boolean) As Boolean


479  Return ShowScrollBar(hwnd, bar, show) As Boolean


480  End Function


481 


482  Function ShowScrollBar(bar As DWord) As Boolean


483  Return ShowScrollBar(hwnd, bar, TRUE) As Boolean


484  End Function


485 


486  Function Show(cmdShow As DWord) As Boolean


487  Return ShowWindow(hwnd, cmdShow) As Boolean


488  End Function


489 


490  Function ShowAsync(cmdShow As DWord) As Boolean


491  Return ShowWindowAsync(hwnd, cmdShow) As Boolean


492  End Function


493 


494  Function Update() As Boolean


495  Return UpdateWindow(hwnd) As Boolean


496  End Function


497 


498  Function ValidateRect(ByRef rc As RECT) As Boolean


499  Return _System_ValidateRect(hwnd, rc) As Boolean


500  End Function


501 


502  Function ValidateRgn(hrgn As HRGN) As Boolean


503  Return _System_ValidateRgn(hwnd, hrgn) As Boolean


504  End Function


505 


506  Function Validate() As Boolean


507  Return _System_ValidateRect(hwnd, ByVal 0) As Boolean


508  End Function


509 


510  ' Get/SetWindowLongPtr Wrappers


511 


512  Const Function GetExStyle() As DWord


513  Return _System_GetWindowLongPtr(hwnd, GWL_EXSTYLE) As DWord


514  End Function


515 


516  Const Function GetStyle() As DWord


517  Return _System_GetWindowLongPtr(hwnd, GWL_STYLE) As DWord


518  End Function


519 


520  Const Function GetWndProc() As WNDPROC


521  Return _System_GetWindowLongPtr(hwnd, GWLP_HINSTANCE) As WNDPROC


522  End Function


523 


524  Const Function GetInstance() As HINSTANCE


525  Return _System_GetWindowLongPtr(hwnd, GWLP_HINSTANCE) As HINSTANCE


526  End Function


527 


528  Const Function GetUserData() As LONG_PTR


529  Return _System_GetWindowLongPtr(hwnd, GWLP_USERDATA)


530  End Function


531 


532  Function SetExStyle(style As DWord) As DWord


533  Return _System_SetWindowLongPtr(hwnd, GWL_EXSTYLE, style) As DWord


534  End Function


535 


536  Function SetStyle(style As DWord) As DWord


537  Return _System_SetWindowLongPtr(hwnd, GWL_STYLE, style) As DWord


538  End Function


539 


540  Function SetWndProc(wndProc As WNDPROC) As WNDPROC


541  Return _System_SetWindowLongPtR(hwnd, GWLP_WNDPROC, wndProc As WNDPROC) As WNDPROC


542  End Function


543 


544  Function SetUserData(value As LONG_PTR) As LONG_PTR


545  Return _System_SetWindowLongPtr(value As LONG_PTR)


546  End Function


547 


548  ' Propaties


549 


550  Const Function ClientRect() As RECT


551  Dim rc As RECT


552  _System_GetClientRect(hwnd, rc)


553  Return rc


554  End Function


555 


556  Sub ClientRect(ByRef rc As RECT)


557  Dim hasMenu As BOOL


558  If IsChild() = False And IsMenu() <> False Then


559  hasMenu = TRUE


560  Else


561  hasMenu = FALSE


562  End If


563  AdjustWindowRectEx(rc, GetStyle(), hasMenu, GetExStyle())


564  MoveWindow(rc) ' WindowRect = rc


565  End Sub


566 


567  Const Function WindowRect() As RECT


568  Dim rc As RECT


569  _System_GetWindowRect(hwnd, rc)


570  Return rc


571  End Function


572 


573  Sub WindowRect(ByRef rc As RECT)


574  MoveWindow(rc)


575  End Sub


576 


577  Const Function ContextHelpID() As DWord


578  Return GetContextHelpId(hwnd)


579  End Function


580 


581  Sub ContextHelpID(newID As DWord)


582  _System_SetContextHelpId(hwnd, newId)


583  End Sub


584 


585  Const Function DlgCtrlID() As Long


586  Return GetDlgCtrlID(hwnd)


587  End Function


588 


589  Sub DlgCtrlId(newId As Long)


590  _System_SetWindowLongPtr(hwnd, GWLP_ID, newId)


591  End Sub


592 


593  Function DlgItem(idDlgItem As Long) As WindowHandle


594  Dim w As WindowHandle(GetDlgItem(hwnd, idDlgItem))


595  Return w


596  End Function


597 


598  Const Function ExStyle() As DWord


599  Return _System_GetWindowLongPtr(hwnd, GWL_EXSTYLE) As DWord


600  End Function


601 


602  Sub ExStyle(newExStyle As DWord)


603  _System_SetWindowLongPtr(hwnd, GWLP_EXSTYLE, newExStyle)


604  End Sub


605 


606  Const Function Style() As DWord


607  Return _System_GetWindowLongPtr(hwnd, GWL_STYLE) As DWord


608  End Function


609 


610  Sub Style(newStyle As DWord) DWord


611  _System_SetWindowLongPtr(hwnd, GWLP_STYLE, newStyle)


612  End Sub


613 


614  Const Function Enabled() As Boolean


615  Return IsWindowEnabled(hwnd) As Boolean


616  End Function


617 


618  Sub Enabled(enable As Boolean)


619  EnableWindow(hwnd, enable)


620  End Sub


621 


622  Const Function Font() As HFONT


623  Return SendMessage(hwnd, WM_GETFONT, 0, 0) As HFONT


624  End Function


625 


626  Sub Font(hfntNew As HFONT)


627  SendMessage(hwnd, WM_SETFONT, hfntNew As WPARAM, TRUE)


628  End Sub


629 


630  Const Function Maximized() As Boolean


631  Return IsIconic(hwnd) As Boolean


632  End Function


633 


634  Sub Maximized(maximized As Boolean)


635  If maximized <> False Then


636  ShowWindow(hwnd, SW_SHOWMAXIMIZED)


637  Else


638  ShowWindow(hwnd, SW_RESTORE)


639  End If


640  End Sub


641 


642  Const Function Minimized() As Boolean


643  Return IsIconic(hwnd) As Boolean


644  End Function


645 


646  Sub Minimized(minimized As Boolean)


647  If minimized <> False Then


648  CloseWindow(hwnd)


649  Else


650  OpenIcon(hwnd)


651  End If


652  End Sub


653 


654  Const Function Instance() As HINSTANCE


655  Return _System_GetWindowLongPtr(hwnd, GWLP_HINSTANCE) As HINSTANCE


656  End Function


657 


658  ' IsWindow, IsUnicodeはメソッドと同じ。


659 


660  Const Function Parent() As WindowHandle


661  Return _System_GetParent(hwnd)


662  End Function


663 


664  Sub Parent(hwndNewParent As HWND)


665  _System_SetParent(hwnd, hwndNewParent)


666  End Sub


667 


668  Const Function ProcessID() As DWord


669  GetWindowProcessThreadId(ProcessID)


670  End Function


671 


672  Const Function ThreadID() As DWord


673  Return GetWindowProcessThreadId(ByVal 0)


674  End Function


675 


676  Const Function Menu() As HMENU


677  Return _System_GetMenu(hwnd)


678  End Function


679 


680  Sub Menu(hmenuNew As HMENU)


681  _System_SetMenu(hwnd, hmenuNew)


682  End Sub


683 


684  Const Function Text() As String


685  With Text


686  .ReSize(GetWindowTextLength(hwnd))


687  .ReSize(GetWindowText(hwnd, .Chars, .Length + 1))


688  End With


689  End Function


690 


691  Sub Text(newText As PCSTR)


692  SetWindowText(hwnd, newText)


693  End Sub


694 


695  Const Function TextLength() As Long


696  Return GetWindowTextLength(hwnd)


697  End Function


698 


699  Const Function UserData() As LONG_PTR


700  Return _System_GetWindowLongPtr(hwnd, GWLP_USERDATA)


701  End Function


702 


703  Sub UserData(newValue As LONG_PTR)


704  _System_SetWindowLongPtr(hwnd, GWLP_USERDATA, newValue)


705  End Sub


706 


707  Const Function Visible() As Boolean


708  Return IsVisible(hwnd) As Boolean


709  End Function


710 


711  Sub Visible(visible As Boolean)


712  If visible <> False Then


713  ShowWindow(hwnd, SW_SHOW)


714  Else


715  ShowWindow(hwnd, SW_HIDE)


716  EndIf


717  End Sub


718 


719  Const Function WindowPlacement() As WINDOWPLACEMENT


720  WindowPlacement.length = Len(WindowPlacement)


721  GetWindowPlacement(hwnd, WindowPlacement)


722  End Function


723 


724  Sub WindowPlacement(ByRef wndpl As WINDOWPLACEMENT)


725  SetWindowPlacement(wndpl)


726  End Sub


727 


728  Const Function WndProc() As WNDPROC


729  Return _System_GetWindowLongPtr(hwnd, GWLP_HINSTANCE) As WNDPROC


730  End Function


731 


732  Sub WndProc(newWndProc As WNDPROC)


733  _System_SetWindowLongPtr(hwnd, GWLP_WNDPROC, newWndProc As LONG_PTR)


734  End Sub


735 


736  Protected


737  Sub SetHWnd(hwndNew As HWND)


738  hwnd = hwndNew


739  End Sub


740  End Class


741 


742  #endif '__WINDOWSHANDLE_SBP__

