home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 3_2004-2005.ISO / Data / Zips / API_Viewer175250612004.psc / Form1.frm < prev    next >
Text File  |  2004-05-31  |  13KB  |  476 lines

  1. VERSION 5.00
  2. Begin VB.Form APIV 
  3.    BorderStyle     =   1  'Fixed Single
  4.    Caption         =   "API Viewer (Write by Visal)"
  5.    ClientHeight    =   8280
  6.    ClientLeft      =   45
  7.    ClientTop       =   330
  8.    ClientWidth     =   8985
  9.    BeginProperty Font 
  10.       Name            =   "MS Sans Serif"
  11.       Size            =   9.75
  12.       Charset         =   0
  13.       Weight          =   400
  14.       Underline       =   0   'False
  15.       Italic          =   0   'False
  16.       Strikethrough   =   0   'False
  17.    EndProperty
  18.    LinkTopic       =   "Form1"
  19.    MaxButton       =   0   'False
  20.    MinButton       =   0   'False
  21.    ScaleHeight     =   8280
  22.    ScaleWidth      =   8985
  23.    StartUpPosition =   3  'Windows Default
  24.    Begin VB.TextBox TextItem 
  25.       Height          =   3375
  26.       Left            =   120
  27.       MultiLine       =   -1  'True
  28.       ScrollBars      =   2  'Vertical
  29.       TabIndex        =   11
  30.       Top             =   4680
  31.       Width           =   8655
  32.    End
  33.    Begin VB.TextBox Text 
  34.       Height          =   375
  35.       Left            =   120
  36.       TabIndex        =   8
  37.       Top             =   1200
  38.       Width           =   8655
  39.    End
  40.    Begin VB.ListBox VType 
  41.       BeginProperty Font 
  42.          Name            =   "MS Sans Serif"
  43.          Size            =   8.25
  44.          Charset         =   0
  45.          Weight          =   400
  46.          Underline       =   0   'False
  47.          Italic          =   0   'False
  48.          Strikethrough   =   0   'False
  49.       EndProperty
  50.       Height          =   1425
  51.       Left            =   4320
  52.       Sorted          =   -1  'True
  53.       TabIndex        =   6
  54.       Top             =   6000
  55.       Visible         =   0   'False
  56.       Width           =   2535
  57.    End
  58.    Begin VB.ListBox VFunction 
  59.       BeginProperty Font 
  60.          Name            =   "MS Sans Serif"
  61.          Size            =   8.25
  62.          Charset         =   0
  63.          Weight          =   400
  64.          Underline       =   0   'False
  65.          Italic          =   0   'False
  66.          Strikethrough   =   0   'False
  67.       EndProperty
  68.       Height          =   2010
  69.       Left            =   5760
  70.       Sorted          =   -1  'True
  71.       TabIndex        =   5
  72.       Top             =   5640
  73.       Visible         =   0   'False
  74.       Width           =   2415
  75.    End
  76.    Begin VB.ComboBox TypeAPI 
  77.       Height          =   360
  78.       Left            =   120
  79.       TabIndex        =   3
  80.       Top             =   480
  81.       Width           =   2415
  82.    End
  83.    Begin VB.ListBox ListType 
  84.       Height          =   1260
  85.       Left            =   2640
  86.       Sorted          =   -1  'True
  87.       TabIndex        =   2
  88.       Top             =   6480
  89.       Visible         =   0   'False
  90.       Width           =   1695
  91.    End
  92.    Begin VB.ListBox ListConst 
  93.       Height          =   780
  94.       Left            =   960
  95.       Sorted          =   -1  'True
  96.       TabIndex        =   1
  97.       Top             =   7080
  98.       Visible         =   0   'False
  99.       Width           =   1815
  100.    End
  101.    Begin VB.ListBox ListFunction 
  102.       Height          =   2220
  103.       Left            =   120
  104.       Sorted          =   -1  'True
  105.       TabIndex        =   0
  106.       Top             =   2040
  107.       Width           =   8655
  108.    End
  109.    Begin VB.Label Label4 
  110.       Caption         =   "Selected Items :"
  111.       Height          =   255
  112.       Left            =   120
  113.       TabIndex        =   10
  114.       Top             =   4320
  115.       Width           =   2295
  116.    End
  117.    Begin VB.Label Label3 
  118.       Caption         =   "Available Items :"
  119.       Height          =   255
  120.       Left            =   120
  121.       TabIndex        =   9
  122.       Top             =   1680
  123.       Width           =   4815
  124.    End
  125.    Begin VB.Label Label2 
  126.       Caption         =   "Type the first few letters of the word you are looking for:"
  127.       Height          =   255
  128.       Left            =   120
  129.       TabIndex        =   7
  130.       Top             =   960
  131.       Width           =   5535
  132.    End
  133.    Begin VB.Label Label1 
  134.       Caption         =   "API Type :"
  135.       Height          =   255
  136.       Left            =   120
  137.       TabIndex        =   4
  138.       Top             =   240
  139.       Width           =   2295
  140.    End
  141. End
  142. Attribute VB_Name = "APIV"
  143. Attribute VB_GlobalNameSpace = False
  144. Attribute VB_Creatable = False
  145. Attribute VB_PredeclaredId = True
  146. Attribute VB_Exposed = False
  147. ' ################################
  148. '  Write By Visal
  149. '  Email : visalemail@yahoo.com
  150. '  IRC : irc.uirc.net  in channel #uirc.services and #cambodia
  151. ' ################################
  152.  
  153. ' ################################
  154.  
  155. Dim FunctionChrPos(26) As Integer
  156. ' Descript : Store where function that start character A-Z located in list
  157. Dim FunctionCountChr(26) As Integer
  158. ' Descript : Count function that start with character A-Z
  159.  
  160. Dim ConstChrPos(26) As Integer
  161. ' Descript : Store where constants that start character A-Z located in list
  162. Dim ConstCountChr(26) As Integer
  163. ' Descript : Count constants that start with character A-Z
  164.  
  165. Dim TypeChrPos(26) As Integer
  166. ' Descript : Store where types that start character A-Z located in list
  167. Dim TypeCountChr(26) As Integer
  168. ' Descript : Count types that start with character A-Z
  169. Dim InType As Boolean
  170. ' Descript : Is in the type or out the type
  171. Dim TypeCode As String
  172. ' Descript : Get type
  173.  
  174. ' ################################
  175.  
  176. Private Sub Form_Load()
  177.  
  178. InType = False
  179.  
  180. ' Show the waiting form
  181. Form1.Show
  182.  
  183. ' Load API File
  184. LoadData App.Path & "\WIN32API.TXT"
  185.  
  186. '--------------------------
  187. ' Add type of API
  188. TypeAPI.AddItem "Constants"
  189. TypeAPI.AddItem "Declares"
  190. TypeAPI.AddItem "Types"
  191. TypeAPI.Text = "Declares"
  192.  
  193. End Sub
  194.  
  195. ' ##############################
  196. '  Sub For Loading The API Data
  197. ' ##############################
  198. Public Sub LoadData(Filename As String)
  199.  
  200. Dim strData As String ' Get data in database file
  201. Dim strLine() As String ' Split data in line
  202. Dim LineSplit() As String ' Split line in space
  203. Dim GetConst As String ' Get Const name and variable
  204. Dim GetAsc As Integer ' Get first character asc
  205.  
  206. 'Open File Database
  207. Open Filename For Input As #1
  208.     'Get all database
  209.     strData = StrConv(InputB(LOF(1), 1), vbUnicode)
  210. Close #1
  211.  
  212. ' Split database in line
  213. strLine = Split(strData, vbCrLf)
  214.  
  215. DoEvents
  216.  
  217. ' Add in list
  218. For i = LBound(strLine) To UBound(strLine)
  219.     
  220.     ' Remark not count in list
  221.     If Left(strLine(i), 1) = "'" Then
  222.         GoTo SkipFor
  223.     End If
  224.     
  225.     ' If this line is in type
  226.     If InType = True Then
  227.         TypeCode = TypeCode & vbCrLf & strLine(i)
  228.     End If
  229.     
  230.     
  231.     If Len(strLine(i)) > 0 Then
  232.         ' Split this line in space
  233.         LineSplit = Split(strLine(i), " ")
  234.         
  235.         '  Check what API type they in
  236.         Select Case LCase(LineSplit(0))
  237.         
  238.             Case "declare"
  239.             
  240.                 ' Add it to list
  241.                 ListFunction.AddItem LineSplit(2)
  242.                 VFunction.AddItem strLine(i)
  243.                 
  244.                 ' Get first character asc
  245.                 GetAsc = Asc(Left(UCase(LineSplit(2)), 1)) - 64
  246.                 
  247.                 ' Count function that start with first character
  248.                 FunctionCountChr(GetAsc) = FunctionCountChr(GetAsc) + 1
  249.                 
  250.                 ' Reset position
  251.                 For j = GetAsc To 26
  252.                     FunctionChrPos(j) = FunctionChrPos(j - 1) + FunctionCountChr(j - 1)
  253.                 Next j
  254.                 
  255.             Case "const"
  256.                 
  257.                 ' Get Const name and variable
  258.                 GetConst = Right(strLine(i), Len(strLine(i)) - (InStr(strLine(i), " ")))
  259.                 
  260.                 ' Remove remark out from GetConst
  261.                 If InStr(1, GetConst, "'") > 0 Then
  262.                     GetConst = Left(GetConst, InStr(GetConst, "'") - 1)
  263.                 End If
  264.                 
  265.                 ' Add it to list
  266.                 ListConst.AddItem GetConst
  267.                 
  268.                 ' Get first character asc
  269.                 GetAsc = Asc(Left(UCase(LineSplit(1)), 1)) - 64
  270.                 
  271.                 ' Count const that start with first character
  272.                 ConstCountChr(GetAsc) = ConstCountChr(GetAsc) + 1
  273.                 
  274.                 ' Reset position
  275.                 For j = GetAsc To 26
  276.                     ConstChrPos(j) = ConstChrPos(j - 1) + ConstCountChr(j - 1)
  277.                 Next j
  278.                 
  279.             Case "type"
  280.                 
  281.                 'Add it to list
  282.                 ListType.AddItem LineSplit(1)
  283.                 
  284.                 ' Now we in the type
  285.                 InType = True
  286.                 
  287.                 ' Get Type
  288.                 TypeCode = strLine(i)
  289.                 
  290.                 ' Get first character asc
  291.                 GetAsc = Asc(Left(UCase(LineSplit(1)), 1)) - 64
  292.                 
  293.                 ' Count type that start with first character
  294.                 TypeCountChr(GetAsc) = TypeCountChr(GetAsc) + 1
  295.                 
  296.                 ' Reset position
  297.                 For j = GetAsc To 26
  298.                     TypeChrPos(j) = TypeChrPos(j - 1) + TypeCountChr(j - 1)
  299.                 Next j
  300.                 
  301.             Case "end"
  302.             
  303.                 'The type is end
  304.                 InType = False
  305.                 VType.AddItem TypeCode
  306.                 
  307.         End Select
  308.     End If
  309. SkipFor:
  310. Next i
  311.  
  312. ' Hide waiting form
  313. Form1.Hide
  314.  
  315. End Sub
  316.  
  317. ' #############################
  318.  
  319. Private Sub ListConst_DblClick()
  320.  
  321.     ' Add const to Text item
  322.     TextItem.Text = TextItem.Text & vbCrLf & "Const " & ListConst.Text & vbCrLf
  323.  
  324. End Sub
  325.  
  326. ' #############################
  327.  
  328. Private Sub ListFunction_DblClick()
  329.  
  330.     ' Add function to Text item
  331.     TextItem.Text = TextItem.Text & vbCrLf & VFunction.List(ListFunction.SelCount) & vbCrLf
  332.  
  333. End Sub
  334.  
  335. ' #############################
  336.  
  337. Private Sub ListType_DblClick()
  338.  
  339.     ' Add type to Text item
  340.     TextItem.Text = TextItem.Text & vbCrLf & VType.List(ListType.SelCount) & vbCrLf
  341.  
  342. End Sub
  343.  
  344. ' ############################
  345.  
  346. Private Sub Text_Change()
  347.  
  348. ' Searching while typing
  349. Select Case LCase(TypeAPI.Text)
  350.     Case "constants"
  351.         Search ListConst, Text.Text, TypeAPI.Text
  352.     Case "declares"
  353.         Search ListFunction, Text.Text, TypeAPI.Text
  354.     Case "types"
  355.         Search ListType, Text.Text, TypeAPI.Text
  356. End Select
  357.  
  358. End Sub
  359.  
  360. ' #############################
  361.  
  362. Private Sub TypeAPI_Click()
  363.  
  364. ' Change API type
  365. Select Case LCase(TypeAPI.Text)
  366.  
  367.     Case "constants"
  368.     
  369.         ' Set Const list position and size
  370.         ListConst.Left = 120
  371.         ListConst.Top = 2040
  372.         ListConst.Visible = True
  373.         ListConst.Height = ListFunction.Height
  374.         ListConst.Width = ListFunction.Width
  375.         
  376.         ListFunction.Visible = False
  377.         ListType.Visible = False
  378.         
  379.         ' Searching
  380.         Search ListConst, Text.Text, TypeAPI.Text
  381.         
  382.     Case "declares"
  383.     
  384.         ' Set function list position and size
  385.         ListFunction.Left = 120
  386.         ListFunction.Top = 2040
  387.         ListFunction.Visible = True
  388.         
  389.         ListType.Visible = False
  390.         ListConst.Visible = False
  391.         
  392.         ' Searching
  393.         Search ListFunction, Text.Text, TypeAPI.Text
  394.         
  395.     Case "types"
  396.     
  397.         ' Set type list position and size
  398.         ListType.Left = 120
  399.         ListType.Top = 2040
  400.         ListType.Visible = True
  401.         ListType.Height = ListFunction.Height
  402.         ListType.Width = ListFunction.Width
  403.  
  404.         ListFunction.Visible = False
  405.         ListConst.Visible = False
  406.         
  407.         ' Searching
  408.         Search ListType, Text.Text, TypeAPI.Text
  409.         
  410. End Select
  411.  
  412. End Sub
  413.  
  414. ' ###################################
  415. '  Searching
  416. ' ###################################
  417.  
  418. Private Sub Search(List As ListBox, Word As String, APIType As String)
  419.  
  420. Dim GetAsc As Integer ' Get first character asc from word you want search
  421. Dim GetPos As Integer ' Get start position of character
  422. Dim GetEnd As Integer ' Get end position of charcter
  423. Dim Found As Boolean ' Found word or not ?
  424.  
  425. Found = False
  426.  
  427. ' If word is nothing then select first item
  428. If Len(Word) < 1 Then
  429.     List.Selected(0) = True
  430.     Exit Sub
  431. End If
  432.  
  433. ' Get first character asc
  434. GetAsc = Asc(UCase(Left(Word, 1))) - 64
  435.  
  436. ' If in not alphabet then stop search
  437. If GetAsc < 1 Then
  438.     List.Selected(0) = True
  439.     Exit Sub
  440. End If
  441.  
  442. If GetAsc > 26 Then
  443.     List.Selected(0) = True
  444.     Exit Sub
  445. End If
  446.  
  447. ' Get start and end position by API type
  448. Select Case LCase(APIType)
  449.     Case "constants"
  450.         GetPos = ConstChrPos(GetAsc)
  451.         GetEnd = ConstCountChr(GetAsc) + GetPos
  452.     Case "declares"
  453.         GetPos = FunctionChrPos(GetAsc)
  454.         GetEnd = FunctionCountChr(GetAsc) + GetPos
  455.     Case "types"
  456.         GetPos = TypeChrPos(GetAsc)
  457.         GetEnd = TypeCountChr(GetAsc) + GetPos
  458. End Select
  459.  
  460. ' If there are no item for it then stop search
  461. If GetPos = GetEnd Then
  462.     List.Selected(0) = True
  463.     Exit Sub
  464. End If
  465.  
  466. 'Searching
  467. For i = GetPos To GetEnd
  468.     If InStr(1, UCase(List.List(i)), UCase(Word)) = 1 Then
  469.         List.Selected(i) = True
  470.         Found = True
  471.         Exit For
  472.     End If
  473. Next i
  474.  
  475. End Sub
  476.