HOWTO: VB - Reading Delegates WebDAV Sample
Private Sub Command1_Click()
'=====================================================
'DoXML takes the href to a document
'and returns the MAPI PR_ENTRYID property expressed in
'a hexadecimal string format such as is used by CDO 1.21
'Function DoXML(strHref)
Dim objX
Dim objXMLdoc
Dim objNode
Dim strR As String
Dim retXML As String
Dim parseStringtemp As String
Dim parseString As String
strHref = "<<Error! Hyperlink reference not valid.> folders/public folder/subject.eml>" '<<https://servername/exchange/mailboxname/>>
Set objX = CreateObject("MSXML2.ServerXMLHTTP")
strR = "<?xml version='1.0'?><d:propfind xmlns:d='DAV:' xmlns:m='https://schemas.microsoft.com/mapi/'>"
strR = strR & "<d:prop><m:dlmembers/></d:prop></d:propfind>"
retXML = DoPropFind(strHref, "<Domain\Username>", "<password>", strR)
' This won't work since we can load "Datatype 'mv.bin.base64'" into the DOM.
'objXMLdoc.setProperty "SelectionNamespaces", "xmlns:d='https://schemas.microsoft.com/mapi/'"
'Set objNode = objXMLdoc.selectSingleNode("/d:dlmembers")
'MsgBox objNode.Text
parseStringtemp = Right(retXML, InStr(1, retXML, "<c:v>"))
parseString = Left(parseStringtemp, (Len(parseStringtemp) - (InStrRev(parseStringtemp, "<c:v>"))))
' Insert your generic decoding code here:
'DoXML = BinToHex(Decode64(parseString))
DoXML = Decode64(parseString)
MsgBox DoXML
'End Function
End Sub
'--------------------------------------------------------------
' DoPropFind
' Searches an HREF for content.
' Input
' sType - "SEARCH", "PROPFIND", etc
' sQuery - Search to perform (XML query document)
' sHREF - Http reference to item(s)/folder
' sUserName - Domain/Username for server
' sPassword - Password for the account above
' Returns: An XML document resulting from the search
'--------------------------------------------------------------
Public Function DoPropFind(ByVal sHREF As String, ByVal sUserName As String, ByVal sPassword As String, sQuery As String) As String
Dim HttpWebRequest As MSXML2.XMLHTTP30
Set HttpWebRequest = New MSXML2.XMLHTTP30
'TO use MSXML 2.0 use the following DIM/SET statements
'Dim HttpWebRequest As XMLHTTP
'Set HttpWebRequest = CreateObject("Microsoft.xmlhttp")
'To use MSXML 4.0 use the folloiwing DIM/SET statements
'Dim HttpWebRequest As MSXML2.XMLHTTP40
'Set HttpWebRequest = CreateObject("Msxml2.XMLHTTP.4.0")
Dim sText As String
' Open the folder
HttpWebRequest.Open "PROPFIND", sHREF, False, sUserName, sPassword
' Set up request headers
HttpWebRequest.setRequestHeader "Content-Type", "text/xml"
' Send the query
HttpWebRequest.send (sQuery)
Debug.Print HttpWebRequest.Status
Debug.Print HttpWebRequest.statusText
Debug.Print HttpWebRequest.responseText
sText = HttpWebRequest.responseText
Set HttpWebRequest = Nothing
DoPropFind = sText
End Function