Attribute VB_Name = "mdlStyles"
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal Y As Long, ByVal CX As Long, ByVal CY As Long, ByVal wFlags As Long) As Long

Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_CLIENTEDGE = &H200
Private Const WS_EX_STATICEDGE = &H20000
Private Const WS_EX_DLGMODALFRAME = &H1
Private Const WS_EX_PALETTEWINDOW = &H188
Private Const GWL_STYLE = (-16)

Private Const SWP_FRAMECHANGED = &H20
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOOWNERZORDER = &H200
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOZORDER = &H4

Public Function InlayBorder(ByVal hwnd As Long)
 Dim lngretval As Long
 lngretval = GetWindowLong(hwnd, -20)

 lngretval = lgnretval Or &H200 Or &H20000

 SetWindowLong hwnd, -20, lngretval
 SetWindowPos hwnd, 0, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOOWNERZORDER Or SWP_NOZORDER Or SWP_FRAMECHANGED
End Function

Public Function ClientBorder(ByVal hwnd As Long)
 Dim lngretval As Long
  lngretval = GetWindowLong(hwnd, &H200)
  
  lngretval = lngretval Or &H200 And Not &H20000
  
  SetWindowLong hwnd, -20, lngretval
  SetWindowPos hwnd, 0, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOOWNERZORDER Or SWP_NOZORDER Or SWP_FRAMECHANGED
End Function

Public Function OfficeBorder(ByVal hwnd As Long)
 Dim lngretval As Long
  lngretval = GetWindowLong(hwnd, &H200)
  
  lngretval = lngretval Or &H20000 And Not &H200
  
  SetWindowLong hwnd, -20, lngretval
  SetWindowPos hwnd, 0, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOOWNERZORDER Or SWP_NOZORDER Or SWP_FRAMECHANGED
End Function

Public Function ResetBorder(ByVal hwnd As Long)
 Dim lngretval As Long
  lngretval = GetWindowLong(hwnd, -20)
  
  lngretval = lngretval And Not &H200 And Not &H20000 And Not -20 And Not &H1
  
  SetWindowLong hwnd, -20, lngretval
  SetWindowPos hwnd, 0, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOOWNERZORDER Or SWP_NOZORDER Or SWP_FRAMECHANGED
End Function

Public Function ModalBorder(ByVal hwnd As Long)
 Dim lngretval As Long
  lngretval = GetWindowLong(hwnd, -20)
  
  lngretval = &H1
  
  SetWindowLong hwnd, -20, lngretval
  SetWindowPos hwnd, 0, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOOWNERZORDER Or SWP_NOZORDER Or SWP_FRAMECHANGED
End Function

Public Function SizeToolBorder(ByVal hwnd As Long)
 Dim lngretval As Long
  lngretval = GetWindowLong(hwnd, -20)
  
  lngretval = &H188
  
  SetWindowLong hwnd, -20, lngretval
  SetWindowPos hwnd, 0, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOOWNERZORDER Or SWP_NOZORDER Or SWP_FRAMECHANGED
End Function

Public Function SetBold(ByVal hwnd As Long)
 Dim lngretval As Long
  lngretval = GetWindowLong(hwnd, -20)
  
  lngretval = -16
  
  SetWindowLong hwnd, &H20000, lngretval
  SetWindowPos hwnd, 0, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOOWNERZORDER Or SWP_NOZORDER Or SWP_FRAMECHANGED
End Function
