Поделиться через


Событие NameSpace.AutoDiscoverComplete (Outlook)

Происходит после того, как Microsoft Outlook завершил доступ к службе автоматического обнаружения сервера Microsoft Exchange, на котором размещена основная учетная запись Exchange, и имеется соответствующая информация, доступная в NameSpace.AutoDiscoverXml.

Синтаксис

выражение. AutoDiscoverComplete

Выражение Переменная, представляющая объект NameSpace.

Замечания

Это событие похоже на событие AutoDiscoverComplete объекта Accounts . Если в текущем профиле определено несколько учетных записей Exchange, используйте событие AutoDiscoverComplete объекта Accounts , указывающего конкретную учетную запись.

Пример

NameSpace.AutoDiscoverXml — это XML-строка, возвращаемая службой автоматического обнаружения сервера Exchange Server. В следующем примере кода показано, когда эта XML-строка доступна во время обычного сеанса Outlook:

  1. При возникновении события Application.Startup , если NameSpace.AutoDiscoverConnectionMode не равно olAutoDiscoverConnectionUnknown

  2. При возникновении события AutoDiscoverComplete , если autoDiscoverConnectionMode не равно olAutoDiscoverConnectionUnknown

Dim WithEvents Session As NameSpace 
 
Dim LastAutoDiscoverXml As String 
 
Dim LastAutoDiscoverConnectionMode As OlAutoDiscoverConnectionMode 
 
 
 
Private Sub Application_Startup() 
 
 Set Session = Application.Session 
 
 If (Session.AutoDiscoverConnectionMode <> olAutoDiscoverConnectionUnknown) Then 
 
 LastAutoDiscoverXml = Session.AutoDiscoverXml 
 
 LastAutoDiscoverConnectionMode = Session.AutoDiscoverConnectionMode 
 
 DoAutoDiscoverBasedWork 
 
 End If 
 
End Sub 
 
 
 
Private Sub Session_AutoDiscoverComplete() 
 
 LastAutoDiscoverXml = Session.AutoDiscoverXml 
 
 LastAutoDiscoverConnectionMode = Session.AutoDiscoverConnectionMode 
 
 If LastAutoDiscoverConnectionMode <> olAutoDiscoverConnectionUnknown Then 
 
 DoAutoDiscoverBasedWork 
 
 End If 
 
End Sub 
 
 
 
Private Sub DoAutoDiscoverBasedWork() 
 
 ' Do activity requires auto discover information 
 
 Dim displayName As String 
 
 Dim posStartTag, posEndTag As Integer 
 
 posStartTag = InStr(1, LastAutoDiscoverXml, "<DisplayName>") 
 
 posEndTag = InStr(1, LastAutoDiscoverXml, "</DisplayName>") 
 
 
 
 If (posStartTag > 1 And posEndTag > 1) Then 
 
 displayName = Mid(LastAutoDiscoverXml, posStartTag + 13, posEndTag - posStartTag - 13) 
 
 Debug.Print "DisplayName = " & displayName 
 
 End If 
 
End Sub

См. также

Объект NameSpace

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.