Share via


Add Method of the IFPCExplicitLinkTranslationMappings Interface

The Add method creates a new FPCExplicitLinkTranslationMapping object in the collection and returns a reference to it.

C++

Syntax

HRESULT Add(
  [in]   BSTR OriginalUrl,
  [in]   BSTR TranslatedUrl,
  [out]  IFPCExplicitLinkTranslationMapping** ppNewMapping
);

Parameters

  • OriginalUrl
    Required. BSTR that specifies the original URL in the new mapping.

  • TranslatedUrl
    Required. BSTR that specifies the translated URL in the new mapping.

  • ppNewMapping
    Address of an interface pointer that on return points to the new IFPCExplicitLinkTranslationMapping interface created.

Return Value

This method can return one of the following:

  • S_OK, indicating that the operation succeeded.
  • An error code, indicating that the operation failed. In this case, the [out] parameter returned is a null object.

Visual Basic

Syntax

Function Add( _
  ByVal OriginalUrl As String, _
  ByVal TranslatedUrl As String _
) As FPCExplicitLinkTranslationMapping

Parameters

  • OriginalUrl
    Required. String that specifies the original URL in the new mapping.
  • TranslatedUrl
    Required. String that specifies the translated URL in the new mapping.

Return Value

This method returns a reference to an FPCExplicitLinkTranslationMapping object if successful. Otherwise, an error is raised that can be intercepted by using an error handler.

Example Code

This VBScript script adds user-defined (explicit) global link translation mappings for the local array from a user-specified file. Note that the text file must contain a list of mappings consisting of two strings separated by a tab character with each mapping on a separate line.

Option Explicit
'Define the constants needed
Const Error_FileNotFound = &H80070002
Const Error_FileAlreadyExits = &H800700B7
Const Error_NoProtocol = &HC00403E0
Const ForReading = 1
Main(WScript.Arguments)
Sub Main(args)
    If(args.Count <> 1) Then
        Usage()
    End If
    AddGlobalMappings args(0)
End Sub
Sub AddGlobalMappings(fileName)
    ' Create the root object.
    Dim root  ' The FPCLib.FPC root object
    Set root = CreateObject("FPC.Root")
    'Declare the other objects needed.
    Dim isaArray    ' An FPCArray object
    Dim mappings    ' An FPCExplicitLinkTranslationMappings collection
    Dim fso         ' A FileSystem object
    Dim fileStream  ' A TextStream object
    Dim textRead    ' A String
    Dim original    ' A String
    Dim translated  ' A String
    DIm i           ' An Integer
    Dim pos         ' An Integer
    ' Get references to the array object and the collection of user-defined
    ' global mappings.
    Set isaArray = root.GetContainingArray()
    Set mappings = isaArray.ArrayPolicy.WebProxy.ExplicitLinkTranslationMappings
    Set fso = CreateObject("Scripting.FileSystemObject")
    On Error Resume Next
    Set fileStream = fso.OpenTextFile(fileName, ForReading)
    If Err.Number <> 0 Then
        WScript.Echo "The file specified could not be found."
        WScript.Quit
    End If
    On Error GoTo 0
    ' Clear the existing user-defined global mappings for the array
    ' and then add the explicit global mappings from the file.
    WScript.Echo "Removing the existing user-defined global mappings..." 
    i = mappings.Count
    Do While i > 0
        mappings.Remove i
        i = i - 1   
    Loop
    WScript.Echo "Adding user-defined global mappings "  _ 
                 & "from the file " & fileName & "..."
    Do While fileStream.AtEndOfStream <> True
        textRead = fileStream.ReadLine
        If textRead <> "" Then
            pos = InStr(1, textRead, vbTab, vbTextCompare)
            If (pos <> 0) Then
                original = Left(textRead, pos - 1)
                translated = Right(textRead, Len(textRead) - pos)
                On Error Resume Next
                mappings.Add original, translated
                If Err.Number = Error_FileAlreadyExits Then
                    WScript.Echo "A duplicate mapping for " & original _
                                 & " was ignored."
                    Err.Clear
                ElseIf Err.Number = Error_NoProtocol Then
                    WScript.Echo "A mapping without a valid protocol was ignored."
                    Err.Clear
                End If
                On Error GoTo 0
            End If
        End If
    Loop
    isaArray.Save True
    WScript.Echo "Done!"
End Sub 
Sub Usage()
    WScript.Echo "Usage:" & VbCrLf _
        & "  CScript " & WScript.ScriptName & " FileName" & VbCrLf _
        & "" & VbCrLf _
        & "  FileName  - Text file containing a list of mappings" 
    WScript.Quit
End Sub

Remarks

The URLs specified in the OriginalUrl and TranslatedUrl parameters must specify HTTP or HTTPS as the protocol.

Requirements

Client Requires Windows 7 or Windows Vista.
Server Requires Windows Server 2008 R2 or Windows Server 2008 x64 Edition with SP2.
Version Requires Forefront Threat Management Gateway (TMG) 2010.
IDL

Declared in Msfpccom.idl.

DLL

Requires Msfpccom.dll.

See Also

FPCExplicitLinkTranslationMappings

Send comments about this topic to Microsoft

Build date: 6/30/2010