Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.8 KiB

  1. Attribute VB_Name = "HHTAdder"
  2. Option Explicit
  3. Private Const HHT_FULL_ELEMENT_METADATA_C As String = "HELPCENTERPACKAGE/METADATA"
  4. Private Const HHT_ELEMENT_HHT_C As String = "HHT"
  5. Private Const HHT_ATTR_FILE_C As String = "FILE"
  6. Public Sub AddHHT( _
  7. ByVal i_strFolder As String, _
  8. ByVal i_strHHT As String _
  9. )
  10. Dim FSO As Scripting.FileSystemObject
  11. Dim strFileName As String
  12. Dim DOMDocPkgDesc As MSXML2.DOMDocument
  13. Dim DOMNodeMetaData As MSXML2.IXMLDOMNode
  14. Dim DOMNodeHHT As MSXML2.IXMLDOMNode
  15. Dim Element As MSXML2.IXMLDOMElement
  16. Dim strQuery As String
  17. frmMain.Output "Adding HHT...", LOGGING_TYPE_NORMAL_E
  18. Set FSO = New Scripting.FileSystemObject
  19. If (Not FSO.FileExists(i_strHHT)) Then
  20. Err.Raise E_FAIL, , "File " & i_strHHT & " doesn't exist."
  21. End If
  22. strFileName = FSO.GetFileName(i_strHHT)
  23. If (FSO.FileExists(i_strFolder & "\" & strFileName)) Then
  24. strFileName = FSO.GetBaseName(FSO.GetTempName) & strFileName
  25. End If
  26. FSO.CopyFile i_strHHT, i_strFolder & "\" & strFileName
  27. Set DOMDocPkgDesc = GetPackageDescription(i_strFolder)
  28. Set DOMNodeMetaData = DOMDocPkgDesc.selectSingleNode(HHT_FULL_ELEMENT_METADATA_C)
  29. strQuery = HHT_ELEMENT_HHT_C & "[@" & HHT_ATTR_FILE_C & "=""" & strFileName & """]"
  30. Set DOMNodeHHT = DOMNodeMetaData.selectSingleNode(strQuery)
  31. If (Not DOMNodeHHT Is Nothing) Then
  32. Err.Raise E_FAIL, , "File " & strFileName & " is already listed in " & PKG_DESC_FILE_C
  33. End If
  34. Set Element = DOMDocPkgDesc.createElement(HHT_ELEMENT_HHT_C)
  35. XMLSetAttribute Element, HHT_ATTR_FILE_C, strFileName
  36. DOMNodeMetaData.appendChild Element
  37. DOMDocPkgDesc.save i_strFolder & "\" & PKG_DESC_FILE_C
  38. End Sub