MS
This commit is contained in:
485
app/DDWDResultHandler/clsWindream_allgemein.vb
Normal file
485
app/DDWDResultHandler/clsWindream_allgemein.vb
Normal file
@@ -0,0 +1,485 @@
|
||||
|
||||
Imports WINDREAMLib
|
||||
Imports WINDREAMLib.WMCOMEvent
|
||||
Imports WINDREAMLib.WMEntity
|
||||
Imports WINDREAMLib.WMObjectEditMode
|
||||
Imports WINDREAMLib.WMSearchOperator
|
||||
Imports WINDREAMLib.WMSearchRelation
|
||||
Imports WMOBRWSLib
|
||||
Imports WMOSRCHLib
|
||||
Imports System.IO
|
||||
|
||||
Public Class clsWindream_allgemein
|
||||
|
||||
#Region "+++++ Konstanten +++++"
|
||||
Const DEBUG = AUS
|
||||
Const AUS = 0
|
||||
Const WINDREAM = 1
|
||||
Const VARIABLEN = 2
|
||||
#End Region
|
||||
|
||||
#Region "+++++ Variablen +++++"
|
||||
Public Shared oConnect ' der Typ darf nicht festgelegt werden (warum auch immer... geht sonst nicht)
|
||||
Public Shared oSession 'As WINDREAMLib.WMSession ' der Typ darf nicht festgelegt werden (warum auch immer... geht sonst nicht)
|
||||
Public Shared oBrowser As New WMOBRWSLib.ServerBrowser
|
||||
Public Shared oDokumentTypen As WINDREAMLib.WMObjects
|
||||
Private Shared oController As New WMOSearchController
|
||||
#End Region
|
||||
|
||||
|
||||
#Region "+++++ Allgemeine Methoden und Funktionen +++++"
|
||||
|
||||
''' <summary>
|
||||
''' Konstruktor für die windream-Klasse
|
||||
''' </summary>
|
||||
''' <remarks></remarks>
|
||||
Sub New()
|
||||
' wenn ein Fehler bei der Initialisierung auftrat
|
||||
If Not Init() Then
|
||||
' Nachricht ausgeben
|
||||
clsLogger.Add("Es trat ein Fehler bei der Initialisierung der Klasse windream auf. Bitte prüfen Sie ob der windream-Server aktiv ist und alle Dienste gestartet sind", True, "clsWindream_allgemein.Init")
|
||||
' das Programm "abschießen"
|
||||
Process.GetCurrentProcess.Kill()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' Initialisiert die statische Klasse (Login, Session starten, usw.)
|
||||
''' </summary>
|
||||
''' <returns>Liefert True wenn das Anmelden erfolgreich war, sonst False</returns>
|
||||
''' <remarks></remarks>
|
||||
Public Function Init() As Boolean
|
||||
|
||||
Try
|
||||
Try
|
||||
' Session-Objekt instanziieren und mit dem im Client ausgewählten Server belegen
|
||||
oSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
||||
' Connection-Objekt instanziieren
|
||||
oConnect = CreateObject("Windream.WMConnect")
|
||||
'MsgBox("windrem init 'ed")
|
||||
Catch ex As Exception
|
||||
Return False
|
||||
End Try
|
||||
|
||||
' wenn windream nicht angemeldet ist
|
||||
If Not IsLoggedIn() Then
|
||||
' Art der Anmeldung an windream festlegen
|
||||
' 0x0L (also 0) = Standard windream Benutzer
|
||||
' WM_MODULE_ID_DOCTYPEEDITOR_LIC = ermöglicht Zugriff auf die windream Management Funktionen (Z.B. zur Verwaltung der windream Dokumententypen, Auswahllisten, etc.)
|
||||
' WM_MODULE_ID_INDEXSERVICE = ermöglicht der Session die Indexierungs-Events vom windream DMS-Service zu empfangen
|
||||
oConnect.ModuleID = 0
|
||||
|
||||
' setzt die minimal erwartete windream-Version
|
||||
oConnect.MinReqVersion = "3"
|
||||
' clsLogger.AddDetailLog("Personifizierung'")
|
||||
|
||||
' -- Impersonifizierung nur möglich mit registry-eintrag --
|
||||
'oConnect.UserName = "\digitaldata\SchreiberM"
|
||||
'oConnect.Password = "pw"
|
||||
|
||||
' Verbindung mit Session-Objekt (und dem ausgewählten Server) aufbauen
|
||||
oConnect.LoginSession(oSession)
|
||||
clsLogger.AddDetailLog("windream-Server: '" & GetCurrentServer() & "'")
|
||||
clsLogger.AddDetailLog("windream-UserName: '" & oConnect.UserName & "'")
|
||||
|
||||
If oSession.aLoggedin = False Then
|
||||
clsLogger.Add("Es konnte keine Verbindung mit dem windream-Server hergestellt werden", True, "clswindream.Init")
|
||||
Return False
|
||||
End If
|
||||
|
||||
' AUSGABE VON SYSTEMINFORMATIONEN
|
||||
' Gibt die Versionsart (Lizenztyp) also Small-Business-Edition (SBE), Small-Business-Extension (SBX)
|
||||
' oder Business-Edition (BE) aus
|
||||
'MsgBox("WindreamVersion: " & oSession.GetSystemInfo("WindreamVersion") & vbNewLine & "LicenceKey: " & oSession.GetSystemInfo("LicenceKey") & vbNewLine & _
|
||||
' vbNewLine & "LicenceName: " & oSession.GetSystemInfo("LicenceName"))
|
||||
|
||||
'Dim WMCtrl As AISCONTROLDATACOMLib.AISControlData
|
||||
'WMCtrl = New AISCONTROLDATACOMLib.AISControlData
|
||||
|
||||
'' liefert die Versionsnummer des Clients
|
||||
'MsgBox(WMCtrl.WMWorkstationBuildNo)
|
||||
'MsgBox(WMCtrl.W
|
||||
'' liefert den Servernamen des angemeldeten windreams
|
||||
'MsgBox(WMCtrl.WMServerName)
|
||||
|
||||
Try
|
||||
oSession.SwitchEvents(WMCOMEventWMSessionNeedIndex, False)
|
||||
' der Parameter WMEntityDocument definiert, dass nur Dokumenttypen und keine
|
||||
' Ordnertypen ausgelesen werden
|
||||
oDokumentTypen = oSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument)
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Problem beim Auslesen der Objekttypen", "clswindream.Init")
|
||||
Return False
|
||||
End Try
|
||||
End If
|
||||
|
||||
clsLogger.AddDetailLog("Alles OK - Erfolgreich angemeldet und Session aufgebaut")
|
||||
Return True
|
||||
|
||||
Catch ex As Exception
|
||||
If Err.Number = -2147220985 Then
|
||||
clsLogger.AddError("Die installierte windream-Version ist nicht ausreichend für den Betrieb", "clswindream.Init")
|
||||
Else
|
||||
clsLogger.AddError("Fehler beim Login an windream: " & ex.Message, "clswindream.Init")
|
||||
End If
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
|
||||
#Region "+++++ Funktionen die für den Objekttyp relevate Informationen zurückliefern +++++"
|
||||
|
||||
''' <summary>
|
||||
''' Liefert alle Objekttypen des aktuellen Servers als windream-Objekte.
|
||||
''' </summary>
|
||||
''' <returns>Alle Objekttypen als WMObjects-Objekt</returns>
|
||||
''' <remarks></remarks>
|
||||
Public Function GetObjecttypesAsObjects() As WMObjects
|
||||
Try
|
||||
|
||||
Return oDokumentTypen
|
||||
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Fehler beim Auslesen der Objekttypen: " & ex.Message, "clswindream.GetObjecttypesAsObjects")
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Liefert alle Objekttypen des aktuellen Servers als Array aus Strings.
|
||||
''' </summary>
|
||||
''' <returns>Array mit allen Objekttypen als Strings</returns>
|
||||
''' <remarks></remarks>
|
||||
Public Function GetObjecttypesAsStrings() As String()
|
||||
|
||||
Try
|
||||
Dim objektTypenStr(oDokumentTypen.Count) As String
|
||||
|
||||
For i As Integer = 0 To oDokumentTypen.Count
|
||||
objektTypenStr(i) = oDokumentTypen.Item(i).aName
|
||||
Next
|
||||
|
||||
Return objektTypenStr
|
||||
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Fehler beim Auslesen der Objekttypen als String: " & ex.Message, "clswindream.GetObjecttypesAsStrings")
|
||||
Return Nothing
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Liefert alle Indexe eines Objekttypen.
|
||||
''' </summary>
|
||||
''' <param name="name">Name des Objekttyps</param>
|
||||
''' <returns>Array mit allen Objekttyp zugeordneten Indexen als String</returns>
|
||||
''' <remarks></remarks>
|
||||
Public Function GetIndicesByObjecttype(ByVal name As String) As String()
|
||||
Try
|
||||
Dim oObjectType As WMObject
|
||||
Dim oIndexAttributes As WMObjectRelation
|
||||
Dim oIndexAttribute As WMObject
|
||||
Dim oIndex As WMObject
|
||||
Dim oRelProperties As WMObjectRelationClass
|
||||
|
||||
' den Objekttyp laden
|
||||
oObjectType = oSession.GetWMObjectByName(WMEntityObjectType, name)
|
||||
|
||||
' Beziehung zu Indizes des Objekttyp auslesen
|
||||
oIndexAttributes = oObjectType.GetWMObjectRelationByName("TypeAttributes")
|
||||
|
||||
' Array für Indizes vorbereiten
|
||||
Dim aIndexNames(oIndexAttributes.Count - 1) As String
|
||||
|
||||
' alle Indizes durchlaufen
|
||||
For j As Integer = 0 To oIndexAttributes.Count - 1
|
||||
|
||||
' aktuellen Index auslesen
|
||||
oIndexAttribute = oIndexAttributes.Item(j)
|
||||
|
||||
' Eigenschaften des Index auslesen
|
||||
oRelProperties = oIndexAttribute.GetWMObjectRelationByName("Attribute")
|
||||
|
||||
' Index aus den Eigenschaften auslesen
|
||||
oIndex = oRelProperties.Item(0)
|
||||
|
||||
' Indexname speichern
|
||||
aIndexNames(j) = oIndex.aName
|
||||
Next
|
||||
|
||||
' Indexarray zurückgeben
|
||||
Return aIndexNames
|
||||
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Fehler beim Auslesen der windream-Indexe: " & ex.Message, "clswindream.GetIndicesByObjecttype")
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
''' <summary>
|
||||
''' Liefert einen Objekttyp als WMObject an Hand dessen Name.
|
||||
''' </summary>
|
||||
''' <param name="objekttypName">Name des Objekttyps</param>
|
||||
''' <returns>Objekttyp als WMObject</returns>
|
||||
''' <remarks></remarks>
|
||||
Public Function GetObjecttypeByName(ByVal objekttypName As String) As WMObject
|
||||
Try
|
||||
' alle Objekttypen auslesen
|
||||
Dim oObjectTypes As WMObjects = oSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument)
|
||||
|
||||
' alle Objekttypen durchlaufen und nach dem mit dem angegebenen Namen suchen
|
||||
For Each oObjectType As WMObject In oObjectTypes
|
||||
If oObjectType.aName = objekttypName Then
|
||||
Return oObjectType
|
||||
End If
|
||||
Next
|
||||
|
||||
Return Nothing
|
||||
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Ein Objekttyp kopnnte nicht erstellt werden. Fehler: " & ex.Message, "clswindream.GetObjecttypeByName")
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Überprüft ob der angegebene Index im Objekttyp existiert
|
||||
''' </summary>
|
||||
''' <param name="objekttyp">Name des zu durchsuchenden Objekttyps</param>
|
||||
''' <param name="indexname">Name des zu suchenden Indexes</param>
|
||||
''' <returns>Liefert True wenn der Index im Objekttyp existiert, sonst False</returns>
|
||||
''' <remarks></remarks>
|
||||
Public Function ExistIndexInObjekttyp(ByVal objekttyp As String, ByVal indexname As String) As Boolean
|
||||
Try
|
||||
Dim indexnamen() As String = GetIndicesByObjecttype(objekttyp)
|
||||
|
||||
If indexnamen Is Nothing Then Return False
|
||||
|
||||
For Each index As String In indexnamen
|
||||
If index = indexname Then Return True
|
||||
Next
|
||||
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Beim Prüfen ob ein Index für einen Objekttypen existiert, ist ein Fehler aufgetreten. Fehler: " & ex.Message, "clswindream.ExistIndexInObjekttyp")
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "+++++ Allgemeine Funktionen die Informationen zurückliefern +++++"
|
||||
|
||||
''' <summary>
|
||||
''' Liefert True wenn die windream-Session angemeldet ist und False für den Fall, dass die Session nicht eingeloggt ist.
|
||||
''' </summary>
|
||||
''' <returns>Anmeldestatus als Boolean</returns>
|
||||
''' <remarks></remarks>
|
||||
Public Function IsLoggedIn() As Boolean
|
||||
Try
|
||||
Return oSession.aLoggedin
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Es konnte nicht erfolgreich geprüft werden, ob das Programm am windream-Server angemeldet ist. Fehler: " & ex.Message, "clswindream.IsLoggedIn")
|
||||
End Try
|
||||
|
||||
Return False
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Liefert den Servernamen an dem windream aktuell angemeldet ist.
|
||||
''' </summary>
|
||||
''' <returns>Servername als String</returns>
|
||||
''' <remarks></remarks>
|
||||
Public Shared Function GetCurrentServer() As String
|
||||
Try
|
||||
Return oBrowser.GetCurrentServer 'ClassWindream.oBrowser.GetCurrentServer
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Der aktuell gewählte windream-Server konnte nicht ausgelesen werden. Fehler: " & ex.Message, "clswindream.GetCurrentServer")
|
||||
End Try
|
||||
|
||||
Return ""
|
||||
End Function
|
||||
|
||||
'Public Function GetSharedCurrentServer() As String
|
||||
' Try
|
||||
' Return ClassWindream.oBrowser.GetCurrentServer
|
||||
' Catch ex As Exception
|
||||
' MsgBox("Der aktuell gewählte windream-Server konnte nicht ausgelesen werden." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen des windream-Servers")
|
||||
' End Try
|
||||
|
||||
' Return ""
|
||||
'End Function
|
||||
|
||||
|
||||
'Liefert das Windream-Laufwerk des windream-Servers, in Form '[Laufwerksbuchstabe]:'. (z.B. 'W:')
|
||||
'Laufwerksbuchstabe mit Doppelpunkt als String</returns>
|
||||
'
|
||||
'Public Function GetWindreamDriveLetter() As String
|
||||
|
||||
' Try
|
||||
' Dim oControl As AISCONTROLDATACOMLib.AISControlData
|
||||
' Dim sDrive As String = ""
|
||||
|
||||
' ' oControl = New AISCONTROLDATACOMLib.AISControlData
|
||||
|
||||
' ' sDrive = oControl.GetStringValue(&H10040003)
|
||||
|
||||
' ' Return sDrive & ":"
|
||||
|
||||
' Catch ex As Exception
|
||||
' MsgBox("Fehlernachricht: " & ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen des windream-Laufwerks")
|
||||
' End Try
|
||||
|
||||
' Return ""
|
||||
'End Function
|
||||
|
||||
''' <summary>
|
||||
''' Liefert den Typen eines Indexes als Integer.
|
||||
''' </summary>
|
||||
''' <param name="indexname">Name des zu überprüfenden Indexfeldes</param>
|
||||
''' <returns>Liefert eine Zahl, die einen Typen beschreibt</returns>
|
||||
''' <remarks></remarks>
|
||||
Public Function GetTypeOfIndexAsIntByName(ByVal indexname As String) As Integer
|
||||
Try
|
||||
Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
|
||||
Dim vType = oAttribute.getVariableValue("dwAttrType")
|
||||
Return vType
|
||||
Catch ex As Exception
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
Public Function GetValuesfromAuswahlliste(ByVal indexname As String) As Object
|
||||
Try
|
||||
'Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
|
||||
'Dim vType = oAttribute.getVariableValue("vItems")
|
||||
'Return vType
|
||||
Dim oChoiceList = oSession.GetWMObjectByName(WMEntityChoiceList, indexname)
|
||||
If Err.Number = 0 And TypeName(oChoiceList) <> "Nothing" Then
|
||||
Dim Values = oChoiceList
|
||||
Values = oChoiceList.GetVariableValue("vItems")
|
||||
Dim anz As Integer = 0
|
||||
|
||||
For Each CLItem In Values
|
||||
If oChoiceList.aName IsNot Nothing Then
|
||||
anz += 1
|
||||
End If
|
||||
Next
|
||||
Dim strListe(anz - 1)
|
||||
Dim zahl As Integer = 0
|
||||
For Each CLItem In Values
|
||||
If oChoiceList.aName IsNot Nothing Then
|
||||
strListe(zahl) = CLItem
|
||||
zahl += 1
|
||||
End If
|
||||
Next
|
||||
Return strListe
|
||||
Else
|
||||
clsLogger.Add("Auswahlliste: " & indexname & " nicht gefunden.", True, "clswindream.GetValuesfromAuswahlliste")
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
clsLogger.AddError("Fehler: " & ex.Message, "clswindream.GetValuesfromAuswahlliste")
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function WDObject_exists(wdobj_location As String)
|
||||
Dim WDObject As WMObject
|
||||
Try
|
||||
WDObject = oSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, wdobj_location.Substring(2))
|
||||
If WDObject Is Nothing Then
|
||||
Return False
|
||||
Else
|
||||
clsLogger.AddDetailLog("WDObject exists")
|
||||
Return True
|
||||
|
||||
End If
|
||||
Catch ex As Exception
|
||||
' bei einem Fehler einen Eintrag in der Logdatei machen
|
||||
clsLogger.AddError("Es konnte kein windream-Object erzeugt werden - " & ex.Message, "clswindream.WDObject_exists")
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function GetSearchDocuments(ByVal wdfLocation As String)
|
||||
'wdfLocation = 'W:\System\Suchen\WDRH\TestPDF.wdf'
|
||||
Try
|
||||
Dim SearchName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1)
|
||||
Dim SearchPath = wdfLocation.Substring(0, wdfLocation.Length - SearchName.Length)
|
||||
|
||||
If System.IO.File.Exists(wdfLocation.ToLower) Then
|
||||
clsLogger.AddDetailLog("Search exists")
|
||||
Else
|
||||
clsLogger.AddError("windream-search not existing: " & wdfLocation)
|
||||
Return Nothing
|
||||
End If
|
||||
oController.CheckSearchProfile(wdfLocation.ToLower)
|
||||
clsLogger.AddDetailLog("oController erzeugt")
|
||||
Dim suchTyp = oController.SearchProfileTargetProgID
|
||||
Dim ExSettings As Object
|
||||
Dim oSearch As Object
|
||||
ExSettings = oController.SearchProfileExSettings
|
||||
If ExSettings = 0 Then ExSettings = 7
|
||||
|
||||
Dim srchQuick As WMOSRCHLib.WMQuickSearch = CreateObject("WMOSrch.WMQuickSearch")
|
||||
Dim srchIndex As WMOSRCHLib.WMIndexSearch = CreateObject("WMOSrch.WMIndexSearch")
|
||||
Dim srchObjectType As WMOSRCHLib.WMObjectTypeSearch = CreateObject("WMOSrch.WMObjectTypeSearch")
|
||||
clsLogger.AddDetailLog("WD Objekte in GetSearchDocuments erzeugt")
|
||||
If suchTyp Is Nothing Then
|
||||
clsLogger.AddError("suchTyp is nothing")
|
||||
Return Nothing
|
||||
End If
|
||||
clsLogger.AddDetailLog(suchTyp.ToString.ToUpper)
|
||||
'' Der öffentliche Member CheckSearchProfile für den Typ IWMQuickSearch7 wurde nicht gefunden. [Microsoft.VisualBasic] => GetSearchDocuments()
|
||||
Select Case suchTyp.ToString.ToUpper
|
||||
Case "WMOSRCH.WMQUICKSEARCH"
|
||||
srchQuick.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
||||
oConnect.LoginSession(srchQuick.WMSession)
|
||||
clsLogger.AddDetailLog("Session created...")
|
||||
srchQuick.ClearSearch()
|
||||
srchQuick.SearchProfilePath = SearchPath
|
||||
srchQuick.LoadSearchProfile(SearchName)
|
||||
oSearch = srchQuick.GetSearch()
|
||||
|
||||
Case "WMOSRCH.WMINDEXSEARCH"
|
||||
srchIndex.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
||||
clsLogger.AddDetailLog("Session created...")
|
||||
oConnect.LoginSession(srchIndex.WMSession)
|
||||
srchIndex.ClearSearch()
|
||||
srchIndex.SearchProfilePath = SearchPath
|
||||
srchIndex.LoadSearchProfile(SearchName)
|
||||
oSearch = srchIndex.GetSearch()
|
||||
|
||||
Case "WMOSRCH.WMOBJECTTYPESEARCH"
|
||||
srchObjectType.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
||||
oConnect.LoginSession(srchObjectType.WMSession)
|
||||
clsLogger.AddDetailLog("Session created...")
|
||||
srchObjectType.ClearSearch()
|
||||
srchObjectType.SearchProfilePath = SearchPath
|
||||
srchObjectType.LoadSearchProfile(SearchName)
|
||||
oSearch = srchObjectType.GetSearch()
|
||||
|
||||
Case Else
|
||||
clsLogger.Add("KEIN GÜLTIGER WINDREAM-SUCHTYP", True, "clswindream.GetSearchDocuments")
|
||||
|
||||
Return Nothing
|
||||
End Select
|
||||
Dim WMObjects As Object
|
||||
WMObjects = oSearch.Execute
|
||||
clsLogger.AddDetailLog("WD Objekte werden zurückgegeben")
|
||||
Return oSearch.execute
|
||||
|
||||
Catch ex As Exception
|
||||
' bei einem Fehler einen Eintrag in der Logdatei machen
|
||||
clsLogger.AddError(ex.Message, "clswindream.GetSearchDocuments")
|
||||
Return Nothing
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
#End Region
|
||||
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user