Declare Function GetProfileString Lib "Kernel" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer) As Integer
Declare Function WriteProfileString Lib "Kernel" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpString As String) As Integer
' Define Windows Message Handler Constants and Structures
Type POINTAPI
X As Integer
Y As Integer
End Type
Type MSG
hWnd As Integer
Message As Integer
wParam As Integer
lParam As Long
Time As Long
Pt As POINTAPI
End Type
Global SysMessage As MSG
' Windows Message Handler Declares
Declare Function GetMessage% Lib "USER" (lpMsg As MSG, ByVal hWnd%, ByVal wMsgFilterMin%, ByVal wMsgFilterMax%)
Declare Function TranslateMessage% Lib "USER" (lpMsg As MSG)
Declare Function DispatchMessage& Lib "USER" (lpMsg As MSG)
' Define System Menu Constants
Global Const MF_SEPARATOR = &H800
Global Const MF_STRING = &H0
Global Const WM_SYSCOMMAND = &H112
'System Menu Declares
Declare Function AppendMenu% Lib "USER" (ByVal hMenu%, ByVal wFlags%, ByVal wIDNewItem%, ByVal lpNewItem As Any)
Declare Function GetSystemMenu% Lib "USER" (ByVal hWnd%, ByVal bRevert%)
' Routine to manually handle messages from Windows
' Program remains in loop until closed, but permits
' gives control back to Windows with each loop
'
Sub ProcessWinMessage ()
Do While GetMessage%(SysMessage, 0, 0, 0)
'Gets message from Windows
Result% = TranslateMessage%(SysMessage)
' Process if message is from the System Menu
If SysMessage.Message = WM_SYSCOMMAND Then
Select Case SysMessage.wParam
Case 1 'User clicked About PMSwitch
PMSAbout.Show 1
Case -4000 'User clicked close
End
End Select
End If
' Dispatch any message back to Windows
' Note that with DispatchMessage, no DoEvents is needed
Ret& = DispatchMessage&(SysMessage)
Loop
End Sub
Sub ReadWinIni (Section As String, KeyName As String, DefaultStr As String, ReturnStr As String, nDefault As Integer)
' Read data from Win.Ini
Dim RetStr As String * 255 'Create an empty string to be filled