|
|
VERSION 5.00 Object = "{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}#1.1#0"; "shdocvw.dll" Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx" Begin VB.Form HssX Caption = "HSC Extensions Manager" ClientHeight = 8235 ClientLeft = 3135 ClientTop = 2280 ClientWidth = 6240 LinkTopic = "Form1" ScaleHeight = 8235 ScaleWidth = 6240 Begin MSComctlLib.StatusBar StatusBar1 Align = 2 'Align Bottom Height = 285 Left = 0 TabIndex = 21 Top = 7950 Width = 6240 _ExtentX = 11007 _ExtentY = 503 _Version = 393216 BeginProperty Panels {8E3867A5-8586-11D1-B16A-00C0F0283628} NumPanels = 1 BeginProperty Panel1 {8E3867AB-8586-11D1-B16A-00C0F0283628} EndProperty EndProperty End Begin VB.TextBox txtAuxFolder Height = 300 Left = 30 TabIndex = 18 Top = 1245 Width = 5355 End Begin VB.TextBox txtCabFile Height = 300 Left = 30 TabIndex = 17 Top = 720 Width = 5355 End Begin VB.CommandButton cmdExecuteExts Caption = "E&xecute Extensions" Height = 375 Left = 3750 TabIndex = 16 Top = 7560 Width = 1800 End Begin MSComctlLib.ListView lstvwExtensions Height = 2070 Left = 30 TabIndex = 15 Top = 3195 Width = 6150 _ExtentX = 10848 _ExtentY = 3651 LabelWrap = -1 'True HideSelection = -1 'True OLEDropMode = 1 Checkboxes = -1 'True _Version = 393217 ForeColor = -2147483640 BackColor = -2147483643 BorderStyle = 1 Appearance = 1 OLEDropMode = 1 NumItems = 1 BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A-00C0F0283628} Object.Width = 2540 EndProperty End Begin VB.Frame fraSKU Caption = "SKU" Height = 1575 Left = 30 TabIndex = 5 Top = 1560 Width = 6135 Begin VB.CheckBox chkStandard Caption = "32-bit Standard" Height = 255 Left = 240 TabIndex = 14 Top = 480 Width = 1695 End Begin VB.CheckBox chkProfessional Caption = "32-bit Professional" Height = 255 Left = 240 TabIndex = 13 Top = 720 Width = 1695 End Begin VB.CheckBox chkServer Caption = "32-bit Server" Height = 255 Left = 3120 TabIndex = 12 Top = 240 Width = 2055 End Begin VB.CheckBox chkAdvancedServer Caption = "32-bit Advanced Server" Height = 255 Left = 3120 TabIndex = 11 Top = 480 Width = 2055 End Begin VB.CheckBox chkDataCenterServer Caption = "32-bit Datacenter Server" Height = 255 Left = 3120 TabIndex = 10 Top = 960 Width = 2055 End Begin VB.CheckBox chkProfessional64 Caption = "64-bit Professional" Height = 255 Left = 240 TabIndex = 9 Top = 960 Width = 1695 End Begin VB.CheckBox chkAdvancedServer64 Caption = "64-bit Advanced Server" Height = 255 Left = 3120 TabIndex = 8 Top = 720 Width = 2055 End Begin VB.CheckBox chkDataCenterServer64 Caption = "64-bit Datacenter Server" Height = 255 Left = 3120 TabIndex = 7 Top = 1200 Width = 2055 End Begin VB.CheckBox chkWindowsMillennium Caption = "Windows Me" Height = 255 Left = 240 TabIndex = 6 Top = 240 Width = 1695 End End Begin SHDocVwCtl.WebBrowser wb Height = 2235 Left = 45 TabIndex = 4 Top = 5280 Width = 6165 ExtentX = 10874 ExtentY = 3942 ViewMode = 0 Offline = 0 Silent = 0 RegisterAsBrowser= 0 RegisterAsDropTarget= 1 AutoArrange = 0 'False NoClientEdge = 0 'False AlignLeft = 0 'False ViewID = "{0057D0E0-3573-11CF-AE69-08002B2E1262}" Location = "res://C:\WINNT\system32\shdoclc.dll/dnserror.htm#http:///" End Begin VB.CommandButton cmdClose Caption = "&Close" Height = 375 Left = 5565 TabIndex = 3 Top = 7560 Width = 675 End Begin VB.CommandButton cmdGo Caption = "&Go" Height = 315 Left = 5415 TabIndex = 2 Top = 240 Width = 675 End Begin VB.TextBox txtExtensionsFolder Height = 300 Left = 30 TabIndex = 0 Top = 240 Width = 5355 End Begin VB.Label Label3 Caption = "Auxiliary Folder for Storing Extensions Output:" Height = 240 Left = 75 TabIndex = 20 Top = 1035 Width = 3555 End Begin VB.Label Label2 Caption = "Cab File Location:" Height = 240 Left = 45 TabIndex = 19 Top = 525 Width = 3000 End Begin VB.Label Label1 Caption = "Extension Tools Directory Location:" Height = 240 Left = 30 TabIndex = 1 Top = 15 Width = 3000 End Begin VB.Menu mnuExt Caption = "Extension Right Click Menu" Visible = 0 'False Begin VB.Menu mnuEdit Caption = "Edit" End Begin VB.Menu mnuDelete Caption = "Delete" End End End Attribute VB_Name = "HssX" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False ' ========================================================================================== Option Explicit Private m_strTempXMLFile As String ' Temporary File for XML Rendering Private m_oDomList As IXMLDOMNodeList ' List of Extensions Private WithEvents m_oHssExt As HssExts Attribute m_oHssExt.VB_VarHelpID = -1 Private m_oFs As Scripting.FileSystemObject Private m_bIndrag As Boolean ' This variable is used to control ' dragging inside the Listview Private m_oCachedExt As IXMLDOMNode ' This is the Cached DOMNODE ' which is saved on MouseUp ' event from the ListView. ' We need to cache it because ' Menus are event driven. Private m_dblTimeLeftButtonDown As Double ' Tracks how long the Mouse Down button was pressed.
Private Sub Form_Initialize() Set m_oHssExt = New HssExts Set m_oFs = New Scripting.FileSystemObject End Sub
Private Sub Form_Load() With Me .txtExtensionsFolder = App.Path + "\Extensions" .txtAuxFolder = App.Path + "\AuxFolder" .txtCabFile = App.Path + "\hcdata.cab" End With ' Let's Get a Temporary File Name m_strTempXMLFile = Environ$("TEMP") + "\" + m_oFs.GetTempName + ".xml" Dim oFh As Scripting.TextStream Set oFh = m_oFs.CreateTextFile(m_strTempXMLFile) oFh.WriteLine "<Note>When you click on an extension in the List Above, the HSS Tool Extension XML Entry will show up here</Note>" oFh.Close wb.Navigate m_strTempXMLFile ' let's kick the first Extensions Search. ' txtExtensionsFolder_Change
End Sub
Private Sub chkAdvancedServer_Click() cmdGo_Click End Sub
Private Sub chkAdvancedServer64_Click() cmdGo_Click End Sub
Private Sub chkDataCenterServer_Click() cmdGo_Click End Sub
Private Sub chkDataCenterServer64_Click() cmdGo_Click End Sub
Private Sub chkProfessional_Click() cmdGo_Click End Sub
Private Sub chkProfessional64_Click() cmdGo_Click End Sub
Private Sub chkServer_Click() cmdGo_Click End Sub
Private Sub chkStandard_Click() cmdGo_Click End Sub
Private Sub chkWindowsMillennium_Click() cmdGo_Click End Sub
Private Sub cmdExecuteExts_Click() m_oHssExt.ExecuteExtensions m_oDomList, Me.txtCabFile, Me.txtAuxFolder End Sub
Private Sub cmdClose_Click() Unload Me End Sub
Private Sub cmdGo_Click()
Dim oDomList As IXMLDOMNodeList Set m_oDomList = m_oHssExt.GetExtensionsList(Me.txtExtensionsFolder, SkuCollection) With Me.lstvwExtensions .LabelEdit = lvwManual .ListItems.Clear .View = lvwReport .ColumnHeaders(1).Text = "Select Extensions to Run" .ColumnHeaders(1).Width = lstvwExtensions.Width - 85 If (m_oDomList Is Nothing) Then GoTo Common_Exit Dim oDomNode As IXMLDOMNode Dim l As ListItem For Each oDomNode In m_oDomList Set l = .ListItems.Add(Text:=oDomNode.selectSingleNode("display-name").Text) Set l.Tag = oDomNode Next End With
Common_Exit:
End Sub
Private Function SkuCollection() As Scripting.Dictionary
Set SkuCollection = New Scripting.Dictionary If (Me.chkAdvancedServer) Then SkuCollection.Add "ADV", "ADV" End If If (Me.chkAdvancedServer64) Then SkuCollection.Add "ADV64", "ADV64" End If If (Me.chkDataCenterServer) Then SkuCollection.Add "DAT", "DAT" End If If (Me.chkDataCenterServer64) Then SkuCollection.Add "DAT64", "DAT64" End If If (Me.chkProfessional) Then SkuCollection.Add "PRO", "PRO" End If If (Me.chkProfessional64) Then SkuCollection.Add "PRO64", "PRO64" End If If (Me.chkServer) Then SkuCollection.Add "SRV", "SRV" End If If (Me.chkStandard) Then SkuCollection.Add "STD", "STD" End If If (Me.chkWindowsMillennium) Then SkuCollection.Add "WINME", "WINME" End If
End Function
Private Sub lstvwExtensions_Click() DisplayTaxonomyEntry2 lstvwExtensions, m_oDomList, wb End Sub
Private Sub lstvwExtensions_ItemCheck(ByVal Item As MSComctlLib.ListItem) Dim oElem As IXMLDOMElement ' Set oElem = m_oDomList.Item(lstvwExtensions.HitTest(Item.Left, Item.Top).Index - 1).selectSingleNode("run-this-extension") Set oElem = Item.Tag Set oElem = oElem.selectSingleNode("run-this-extension") oElem.Text = IIf(Item.Checked, "yes", "no") End Sub
Private Sub lstvwExtensions_DragDrop(source As Control, x As Single, y As Single) DoDragDrop lstvwExtensions, source, x, y End Sub
Private Sub lstvwExtensions_DragOver(source As Control, x As Single, y As Single, State As Integer) DoDragOver lstvwExtensions, source, x, y, State End Sub
Private Sub lstvwExtensions_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) If (Button = vbLeftButton) Then m_dblTimeLeftButtonDown = HighResTimer End If End Sub
Private Sub lstvwExtensions_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) ' Debug.Print "Button = " & Button & " - Shift = " & Shift Select Case Button Case vbRightButton If (Not lstvwExtensions.HitTest(x, y) Is Nothing) Then Set m_oCachedExt = lstvwExtensions.HitTest(x, y).Tag PopupMenu mnuExt Set m_oCachedExt = Nothing End If Case vbLeftButton m_dblTimeLeftButtonDown = 0 End Select End Sub
Private Sub lstvwExtensions_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) DoMouseMove lstvwExtensions, Button, Shift, x, y
End Sub
Sub DoMouseMove(lvw As ListView, Button As Integer, Shift As Integer, x As Single, y As Single) If (Button = vbLeftButton) Then If (LeftButtonWasPressedLongEnough) Then ' Signal a Drag operation. ' Set the drag icon with the CreateDragImage method. If (Not lvw.SelectedItem Is Nothing) Then m_bIndrag = True ' Set the flag to true. lvw.DragIcon = lvw.SelectedItem.CreateDragImage lvw.Drag vbBeginDrag ' Drag operation. End If End If Else m_bIndrag = False End If
' Debug.Print "DoMouseMove Called from " & lvw.Name; "_MouseMove. m_bIndrag = " & m_bIndrag End Sub
Private Function LeftButtonWasPressedLongEnough() As Boolean LeftButtonWasPressedLongEnough = False If (m_dblTimeLeftButtonDown <> 0) Then LeftButtonWasPressedLongEnough = ((HighResTimer - m_dblTimeLeftButtonDown) > 0.4) End If End Function Sub DoDragOver(lvw As ListView, source As Control, x As Single, y As Single, State As Integer)
If m_bIndrag = True Then ' Set DropHighlight to the mouse's coordinates. Set lvw.DropHighlight = lvw.HitTest(x, y) End If End Sub
Sub DoDragDrop(lvw As ListView, _ source As Control, x As Single, y As Single _ )
If lvw.DropHighlight Is Nothing Then GoTo Common_Exit If (lvw Is source) Then ' We are on the Same Tree, so we need If lvw.SelectedItem.Index = lvw.DropHighlight.Index Then GoTo Common_Exit ' Temporary Variables to keep The List view Item contents. Dim strLi1 As String, strSli1 As String, strSli2 As String Dim oTag As Object, bChecked As Boolean ' The direction in which the List Items will be moved ' on the list to make room for the move Dim lDirection As Long If (lvw.DropHighlight.Index < lvw.SelectedItem.Index) Then lDirection = -1 Else lDirection = 1 End If With lvw.SelectedItem bChecked = .Checked Set oTag = .Tag strLi1 = .Text ' strSli1 = .ListSubItems(1).Text ' strSli2 = .ListSubItems(2).Text End With Dim i As Long For i = lvw.SelectedItem.Index To lvw.DropHighlight.Index - lDirection Step lDirection With lvw.ListItems .Item(i).Checked = .Item(i + lDirection).Checked Set .Item(i).Tag = .Item(i + lDirection).Tag .Item(i) = .Item(i + lDirection) ' .Item(i).ListSubItems(1) = .Item(i + lDirection).ListSubItems(1) ' .Item(i).ListSubItems(2) = .Item(i + lDirection).ListSubItems(2) End With Next i With lvw.DropHighlight .Checked = bChecked Set .Tag = oTag .Text = strLi1 ' .ListSubItems(1).Text = strSli1 ' .ListSubItems(2).Text = strSli2 End With Debug.Print lvw.SelectedItem.Text & " dropped on " & lvw.DropHighlight.Text End If Common_Exit: ' This is the exit Condition for Shutting Down the Drag operation Set lvw.DropHighlight = Nothing: m_bIndrag = False Exit Sub End Sub
Private Sub lstvwExtensions_OLEDragDrop( _ Data As MSComctlLib.DataObject, _ Effect As Long, Button As Integer, _ Shift As Integer, _ x As Single, _ y As Single _ ) If Data.GetFormat(vbCFFiles) Then Dim vFN For Each vFN In Data.Files ' Screen.MousePointer = vbHourglass ' Screen.MousePointer = 99 ' Screen.MouseIcon = LoadPicture(Environ$("WINDIR") + "\cursors\wait_m.cur")
Select Case UCase$(m_oFs.GetExtensionName(vFN)) Case "EXE", "VBS", "JS", "BAT", "PL" If (Not m_oHssExt.ExtensionExists(m_oFs.GetFileName(vFN))) Then Dim oFext As frmExt: Set oFext = New frmExt oFext.DropFile Nothing, vFN, "MSFT" cmdGo_Click Else MsgBox "This Extension was already added to the Extensions System " + vbCrLf + _ "in case you want to update it, please remove first the old " + vbCrLf + _ "extension and then retry the operation", vbInformation, _ Me.Caption End If End Select ' Screen.MousePointer = vbDefault Next vFN End If
End Sub
Private Sub m_oHssExt_RunStatus(ByVal strExt As String, bCancel As Boolean) Me.StatusBar1.SimpleText = strExt End Sub
Private Sub mnuDelete_Click() m_oHssExt.DeleteExtension m_oCachedExt cmdGo_Click End Sub
Private Sub mnuEdit_Click() MsgBox "Edit Menu" End Sub
Private Sub txtExtensionsFolder_Change()
Dim bEnabled As Boolean bEnabled = m_oFs.FolderExists(Me.txtExtensionsFolder) With Me .txtAuxFolder.Enabled = bEnabled .txtCabFile.Enabled = bEnabled .lstvwExtensions.Enabled = bEnabled .fraSKU.Enabled = bEnabled .cmdExecuteExts.Enabled = bEnabled .cmdGo.Enabled = bEnabled End With cmdGo_Click End Sub
Sub DisplayTaxonomyEntry2(oList As ListView, oResultsList As IXMLDOMNodeList, wBrowser As WebBrowser)
If (oList.SelectedItem Is Nothing) Then GoTo Common_Exit
Dim oDom As DOMDocument: Set oDom = New DOMDocument oDom.loadXML oList.SelectedItem.Tag.xml oDom.save m_strTempXMLFile wBrowser.Navigate m_strTempXMLFile Common_Exit:
End Sub
|