Yep UDT's are nice to keep things organized
You define a type
then declare several types beneath it.
Code:
Private Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessId As Long
dwThreadID As Long
End Type Now he can easily access information all regarding the same "PROCESS_INFORMATION"
Then when you go into a procedure you can access the info by declaring a variable as UDTName
Dim udtVariable As PROCESS_INFORMATION
udtVariable.hProcess = 34
udtVariable.hThread = 90000
udtVariable.dwProcessId = 45 etc
You can see I got the udtVariable.<look above in the intial declaration>
WHOOPS
Brain fart
The function I mentioned above is a declared function he created , however he does make an api call
Code:
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long then later calls that function
ShellExecute frmMain.hwnd, "Open", "http://www.geocities.com/netviewer2002", 0&, 0&, SW_SHOWMINNOACTIVE
Hmmm interesting...
http://www.vbapi.com/ref/s/shellexecute.html
Some info on that API call....
So I do believe that would be closer to what you would use...
Sorry bout that, maybe I should try reading a little more
--- edit ---
whoops blew out the frames, had to fix it