WINSTUFF.BAS
Attribute VB_Name = "basWINSTUFF" 
Option Explicit 
 
' Private Window Messages Start Here: 
Public Const WM_USER = &H400 
 
Public Const LB_SETTABSTOPS = &H192 
Public Const LB_GETITEMHEIGHT = &H1A1 
Public Const EM_SETTABSTOPS = &HCB 
 
' SetWindowPos Flags 
Public Const SWP_NOSIZE = &H1 
Public Const SWP_NOMOVE = &H2 
Public Const SWP_NOZORDER = &H4 
Public Const SWP_NOREDRAW = &H8 
Public Const SWP_NOACTIVATE = &H10 
Public Const SWP_FRAMECHANGED = &H20        '  The frame changed: send WM_NCCALCSIZE 
Public Const SWP_SHOWWINDOW = &H40 
Public Const SWP_HIDEWINDOW = &H80 
Public Const SWP_NOCOPYBITS = &H100 
Public Const SWP_NOOWNERZORDER = &H200      '  Don't do owner Z ordering 
 
' SetWindowPos() hwndInsertAfter values 
Public Const HWND_TOP = 0 
Public Const HWND_BOTTOM = 1 
Public Const HWND_TOPMOST = -1 
Public Const HWND_NOTOPMOST = -2 
 
'Const for GetTempFileName() 
Public Const TF_FORCEDRIVE = &H80 
 
Type Rect 
    left As Long 
    top As Long 
    right As Long 
    bottom As Long 
End Type 
 
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long 
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long 
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long 
Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long 
Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As Rect) As Long 
Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As Rect) As Long 
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 
Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long 
Declare Function GetDialogBaseUnits Lib "user32" () As Long 
 
 
Sub GetPixelSizeInTwips(frm As Form, x%, y%) 
    Dim r As Rect 
 
    GetWindowRect frm.hwnd, r 
    x% = frm.Width / (r.right - r.left) 
    y% = frm.Height / (r.bottom - r.top) 
End Sub