930 likes | 1.2k Views
. ADO. OLEDB. EFD. CMC. DAPI. Active Messaging. Exchange Server Interfaces. Simple MAPI. Event Scripting. OLE Messaging. ADSI. Outlook Object Model. Routing Objects. CDOEXM. Workflow Engine. Extended MAPI. CDO 1.21. WEBDAV. XML. CDOSYS. AVAPI. Outlook Forms. WEBFORMS. LDAP. Client Extensions. COM-A
E N D
2.
3. Agenda Exchange 5.x Schnittstellen
Store Schnittstellen
Directory Schnittstellen
Exchange 2000 Schnittstellen
Neue Store Schnittstellen
Neue Directory Schnittstellen
Exchange 2000 Future
Exchange 2000 SP1
Exchange und .NET
5. Von über 100 Firmen und Microsoft definierter Standard, welcher das Zusammenspiel zwischen Komponenten und deren Schnittstellen definiert
Sämtliche Bestandteile des Exchange Servers kommunizieren u.a. über MAPI (Store, Gateways, Addressbook, Transport, etc.) und Clients (Exchange und Outlook)
OLE/COM basierend
Programmierung nur mit C/C++
6. MAPI ist ein offenes Konzept, nahezu alle Komponenten können durch eigene Implementierungen ersetzt oder erweitert werden
MAPI definiert, welche Schnittstellen Komponenten im Gesamtsystem haben müssen, die Implementierung selbst ist offen.
Realisiert über COM Interfaces (wie abstrakte Basisklassen)
7. Extended MAPI
8. DEMO: Extended MAPI
9. Nice Feature:
Mapi unterstützt Notifications zwischen MAPI Objekten (Store und Addressbook)
Bietet Client oder Serveranwendung die Möglichkeit, auf Änderungen wie Message angekommen, verschoben, geändert, gelöscht, Addressbucheintrag erzeugt, verändert, gelöscht etc. zu reagieren
Implementiert über AdviseSinks (IMAPIAdviseSink::OnNotify)
10.
11. DEMO: MAPI Event Notification
12. MAPI Resources MAPI Links:
http://msdn.microsoft.com/exchange
Exchange Server 2000 Documentation / Messaging API (MAPI)
http://peach.ease.lsoft.com/archives/mapi-l.html
MAPI Bücher:
"Inside MAPI", Les Thaler (http://www.insidemapi.com)
Ben Götter, "Developing Applications for Microsoft Exchange with C++"
Nik Okuntsev, "Programming MS Exchange Server", http://www.wrconsulting.com/Software/Publications/Exchange/Contents.htm
13. Microsoft Exchange Server hat eigene Interfaces (11 St.), zugehörige Methoden und Runtime Functions (317 St.)
Exchange Dienste benutzen sowohl MAPI als auch Exchange Server Interfaces, deren Methoden und Runtime functions
Exchange Server Interfaces sind hauptsächlich für das Managen des Stores gedacht. (Rules erzeugen, ACL’s auf Folder, Synchronisation, ..)
Eigene Anwendungen können diese Interfaces und Methoden ebenfalls nutzen
14. IExchangeExportChanges (EDKMDB.H)
IExchangeFavorites (EDKMDB.H)
IExchangeFolderACLs (ACLCLS.H)
IExchangeFolderRules (RULECLS.H)
IExchangeImportContentsChanges (EDKMDB.H)
IExchangeImportHierarchyChanges (EDKMDB.H)
IExchangeManageStore (EDKMDB.H)
IExchangeModifyTable (EDKMDB.H)
IExchangeRuleAction (EDKMDB.H)
IExchangeRuleExt (EXCHCLI.H)
IExchangeRuleExtCallback (EXCHCLI.H)
15. Die Exchange Server Runtime Functions (317 Stück) werden in zwei Gruppen unterteilt:
Core functions
Dazu gehören Functionen für Directory Zugriff (DAPI), Proxy Address Generation, Routing Table (SAD_xx), Admin Extension, Tracing, Installation, Rules, MAPI helper und Gateways
Non Core functions
Dazu gehören Funktionen für Gateways, Service, Event, Logging, Konfiguration und Konvertierung
16. Incremental Change Synchronization (ICS) ist Teil der Exchange Server Interfaces
Wird verwendet, um Änderungen in der Storestruktur und Storeinhalt mitzuprotokollieren, abzufragen und um Änderungen zu synchronisieren.
Der Exchange Server 5.5 Event Service benutzt dieses Interface.
Interfaces des ICS:
IExchangeExportChanges IExchangeImportHierarchyChangesIExchangeImportContentsChanges
17. Incremental Change Synchronisation Interface, um Store Inhalte/Hierachie zu synchronisieren
Exchange Private Store (Mailboxen)
Exchange Public Store (Öffentliche Ordner)
nicht verfügbar für PST oder OST Stores
Zugriff via MAPI, sind aber spezifisch für Microsoft Exchange
Beispiel: Platform SDK April99: ICSAGENTWIZARD
18. Incremental Change Synchronisation Schnittstellen
Synchronizer interface
IExchangeExportChanges
Collector interfaces
IExchangeImportHierarchyChanges
IExchangeImportContentsChanges
Zwei verschiedene Synchronizer für Hierarchietabelle und Inhalttabelle
PR_HIERARCHY_SYNCHRONIZER
PR_CONTENTS_SYNCHRONIZER
Realisiert über ein IStream Objekt, welches den aktuellen Status der Synchronisation enthält
Das Format des Synchronisations Status Objekts wird vom Collector/Synchronizer definiert
Enthält Informationen über alle importierten und exportierten Daten
19. Ab 5.5 SP3 (scannt nur Attachments)
Anti-Viren Hersteller implementiert DLL mit 3 exportierten Funktionen:
VirusScanInit
VirusScanTerm
VirusScanAndClean
Infos für Admin's: Q263949
Ab Exchange 2000 SP1 AVAPI 2.0
scannt alle Properties Anti Virus API
20. Definiert von der X-Open Application Program Interface Association (XAPIA).
10 simple Funktionen um Email-Funktionalität in Anwendungen zu integrieren
Senden, Empfangen und Adressenauflösung
Plattformunabhängig (Win Implementation verwendet MAPI)
Sample im Platform SDK: CMC.CLI Common Messaging Calls (CMC)
21. 12 simple Funktionen um Email-Funktionalität in Client- Anwendungen zu integrieren Simple MAPI
22. Ab Exchange 4.0 mitgeliefert (MDISP32.DLL)
Nur für Client-side Messaging Apps
Programmierbar mit Visual Basic, Visual Basic® for Applications, C, C++, etc
Bietet mehr Funktionalität als Simple MAPI oder CMC
Folder Zugriff, mehr Adressbuch Properties, mehr Message Properties, Custom Properties, etc.
Wesentlich einfacher zu programmieren als Extended MAPI OLE/Active Messaging (1)
23. 'Create the Session Object
Set objSession = CreateObject("mapi.session")
'Logon using the session object
objSession.Logon profileName:=“Michael Klopstock"
'Add a new message object to the OutBox
Set objMessage = objSession.Outbox.Messages.Add
objMessage.subject = "This is a test.”
objMessage.Text = "This is the message text.”
'Add a recipient object to the objMessage.Recipients collection
Set objRecipient = objMessage.Recipients.Add
'Set the properties of the recipient object
objRecipient.Name = ”Michael Klopstock”
objRecipient.Type = mapiTo
objRecipient.Resolve
'Send the message
objMessage.Send showDialog:=False
'Logoff using the session object
objSession.Logoff OLE/Active Messaging (2)
24. COM Server basierend auf MAPI
Nachfolger von Active Messaging
Mitgeliefert mit Microsoft Exchange 5.x und Outlook
Support für Server-seitige und Client- seitige Anwendungen
Support für Web Anwendungen
Kompatibel mit Active Messaging 1.0 CDO 1.x
25. CDO 1.21
26. CDO Object Model 1.x
28. Anzeige von Kalendereinträgen eines Zeitraums DEMO: CDO 1.21
29. Exchange Event Service Ab Exchange Version 5.5
Der Exchange Server Event Service registriert sich bei MAPI, um Folder Notifications vom Store zu bekommen
Nach Erhalt einer Notification stösst der Event Service den ICS an, um die Art der Veränderung festzustellen
Daraus konstruiert der Event Service einen Event, der an die installierten Agents (Default = Event Scripting Agent) weitergereicht wird.
30. Event Handler Agent:
Man kann beim Exchange Server Event Service eigene Agents (siehe Event Scripting Agent) registrieren, um folgende Events abzufangen:
Erzeugen einer Nachricht in einem Ordner
Änderung einer Nachricht in einem Ordner
Löschen einer Nachricht in einem Ordner
Ein Event Handler Agent ist ein Standard COM Object
IExchangeEventHandler Interface muss implementiert werden
ExecuteEvent() Funktion muss implementiert werden:
Infos in MSDN unter:
Platform SDK/Database und Messaging Service/Microsoft Exchange Server/ Exchange Server Programmer’s Reference/Guide/ Exchange Server Scripting Agent/Advance Topics:Custom Agents Exchange Event Service
31. Mögliche Events:
OnMessageCreated
OnMessageChanged
OnMessageDeleted
OnTimer (Min 15 min)
Vorsicht:
Asynchrones Processing
wenn z.B.: auf Outbox angewandt, dann kann Message schon wieder gelöscht sein, bis der Agent darauf zugreift.
Single Threaded => Skalierung !
Mögliche Anwendungsbereiche:
Periodisches Archivieren von Nachrichten und/oder Attachments
Workflow Anwendungen (Post in Public Folder, etc.) Exchange Scripting Agent
32. Einrichten eines Scripting agents Demo: Exchange Scripting Agent
33. Basiert auf Exchange Event Service
Erweitert Exchange 5.5 Server Scripting:
Ziel: Vereinfachung der Erstellung von Routing und Tracking Anwendungen mit Scripting
Nicht-Ziel: Volle Workflow Funktionalität bieten
Ab Exchange 5.5 Service Pack 1
Zielgruppe sind "Corporate Developers" und "Solution Providers" Exchange Routing Objects
34. "Hub and Spoke" Architektur
Hub = Nabe = Ordner, Spoke = Speiche = Stationen
"Hub" Ordner enthält:
Custom agent (event handler)
Exchange routing engine (ExRtEng.dll)
Eine Prozessdefinition
Routing map Objekt
Maps sind eine sequentielle Liste von Aktionen
Satz der zur Verfügung stehenden VB Script Funktionen
Die gesamte Logik verbleibt auf dem Server Exchange Routing Objects
35. Exchange Routing Objects
36. Exchange Routing Objects
38. Exchange Client Extensions DLLs um die Funktionalität von Exchange oder Outlook zu erweitern
COM-basiert
Installation
Registry unter HKLM\Software\Microsoft\Exchange\Client\Extension
Outlook benutzt ECF Files oder Registry
39. Exchange Client Extensions Event Extension
IExchExtSessionEvents (Neue Message eingetroffen,etc.)IExchExtUserEvents (Selektiertes Item (Listbox, Text, ...))IExchExtMessageEvents (Message Read, Write, Submit, ...)IExchExtAttachedFileEvents (Attachment open, - Verhalten,.)
Command Extensions
IExchExtCommands (Menu, Toolbar, Delete Command, ...)IExchExtUserEvents (Selektiertes Item (Listbox, Text, ...))
Propertysheet Extension
IExchExtPropertySheets (Eigene Prop-sheets für Msg, Props)
Adanced Criteria Extension
IExchExtAdvancedCriteria (Advanced Search Dlg modifizieren)
Task and Session Extensions
IExchExt (Client Start/Shutdown/Logon/Logoff)
Modal and modeless Extension Windows
IExchExtModeless ( Eigene Fenster, mit Callback Routine)
40. CDONTS Standard SMTP Mailer für Server Anwendungen
SMTP send & receive message handling
Wird mit IIS 4.0 and Exchange 5.5 installiert
Nicht authentiziertes “anonymous” Versenden von Nachrichten
Plain text, HTML, und MHTML Message
UUEncoded or Base64 content encoding
41. DEMO: CDONTS
42.
43. Exchange 5.x Directory Schnittstellen
44. Directory Zugriff Via MAPI address book provider
OK für read-only, Schreibzugriff eingeschränkt
Via LDAP/ADSI
Microsoft Exchange 5.0 unterstützt LDAP v2 read
Microsoft Exchange 5.5 unterstützt voll read/write LDAP v3
ADSI benutzt den LDAP provider
Via Directory access functions (DAPI)
Nicht vorhanden in Exchange 2000 !
45. Directory Zugriff LDAP/ADSI LDAP/ADSI
LDAP (Lightweight Directory Access Protocol) bildet das Zugriffsprotokoll auf Objekte im AD
Jedes Objekt ist über einen eindeutigen LDAP-Pfad adressierbar
ADSI (Active Directory Service Interface) ist die Abstraktionsschicht für Zugriffe auf das AD (via LDAP)
Anwendungen können entweder die LDAP API benutzen oder das Active Directory Service Interface (ADSI) benutzen
Vorteil von LDAP:
IETF Standard
Vorteil von ADSI:
Einfacher zu programmieren,
Unabhängig vom darunterliegenden Directory Service
46. LDAP Konventionen Ein LDAP Pfad (URL) besteht aus
DC = Domain Context
CN = Common Name
LDAP://CN=Michael Klopstock,CN=Users,DC=seldom,DC=de
Wird von hinten nach vorne gelesen:
In der Domäne seldom.de im Container Users der Benutzer Michael Klopstock
47. ADSI Object Modell IADs
IADsUser
IDispatch
IADsContainer
IADsPropertyList, IADsPropertyEntry, IADsPropertyValue
IADsSecurityDescriptor, IADsAccessControlList, IADsAccessControlEntry
48. ADSI Bind and Enumerate Dim MyContainer As IADsContainer
‘Bind to container object
Set MyContainer = GetObject("LDAP://MyLdapSvr/O=Internet/DC=Redmond")
‘Enumerate child objects
for each Object in MyContainer
Debug.Print Object.ADsPath
Next
49. DEMO: Directory Zugriff ADSI
50. Directory Zugriff Via DAPI (Directory API)
Proprietäre API für den Zugriff auf das Exchange Directory (10 Funktionen, 6 Callback Funktionen)
Wird vorrangig benutzt um Attribute eines “Containers” (Mailbox, Gateways, etc. ) aus dem Directory zu lesen/schreiben sowie für Installation und Konfiguration von Gateways
Samples im Platform SDK
DIRSYNC: Importing and Exporting Mailboxes
DSEXPORT: Exporting Directory Objects
DSIMPORT: Importing Directory Objects
51. Directory Zugriff via DAPI (1)
52. Directory Zugriff via DAPI (2)
53. Directory Zugriff via DAPI (3)
54. Directory Zugriff via DAPI (4)
56.
57. Neue Exch. 2000 Schnittstellen ADO/OLEDB
CDO 3.0
Workflow Engine
CDOSYS
XML
WEBDAV
WEBFORMS
58. Universeller Datenzugriff auf alle Datenbanken via ADO/OLEDB
CDO 3.0 zum Erzeugen von ADO Records
Neue synchrone Events = neue Workflow Engine
CDONTS nur auf Server, CDOSYS Server und Client
WEB, WEB, WEB
=> Einheitliches Transportprotokoll
= HTTP (WEBDAV) und XML Neue Exch. 2000 Schnittstellen
59. Exchange 2000 Architektur
60. OLEDB Zwei verschiedene Provider:
Remote: Client OLE/DB provider über DAV
Outlook
CDO
Office
Lokal: Client OLE/DB provider über COM
Virenscanner
Dokumentenmanagement
Workflow
61. ADO 2.5 – Object Model
62. ADO 2.5 Connection
Implizit
URL an die Open Methode des Record Objekts übergeben
Explizit
Connection Objekt öffnen
Transaktionen
Errors collection
SQL Select queries
63. Connection via ADO Implizit:
dim Rec as New ADODB.Record
strURL = "file://./backofficestorage/" & DomainName &
"/" & strLocalPath
Rec.Open strURL
Explizit:
Dim Rec As New ADODB.Record
Dim Conn as New ADODB.Connection
Dim Stm as ADODB.Stream
Conn.Provider = "ExOLEDB.DataSource"
Conn.Open "http://server/folder"
Rec.Open "http://server/folder/item.txt", Conn
Set Stm = Rec.Fields(adDefaultStream).Value
64. CDO 3.0 Ersetzt und erweitert CDO for Windows 2000 (CDOSYS)
Abwärtkompatibel
Zugriff auf public und private Stores
Erweiterbar mit eigenen Komponenten
Aggregation mit ADO
65. CDO 3.0 Dim conn as New Connection
Dim rs as New Recordset
Dim msg as New Message
fldr = “file://./backofficestorage/domain/MBX/user/inbox”
conn.open fldr,”fred”,”whatever”,adRunAsync
Set rs = conn.execute “Select * from scope(‘shallow traversal of
“ & fldr & ”’) where urn:schemas:mailheader:subject = ‘hello’”
msg.DataSource.Open rs(“DAV:href”),conn
msg.Attachments(1).SaveToFile “C:\temp\file.doc”
msg.DataSource.Save
66. CDO 3.0 Public Sub SimpleMeetingRequest()
Dim objAppt As New Appointment
Dim objReq As New CalendarMessage
objAppt.Subject = "Termin"
objAppt.StartTime = "10/4/99 1:00PM"
objAppt.EndTime = "10/4/99 2:00PM"
objAppt.Attendees.Add ("user2@domain")
Set objReq = objAppt.CreateRequest
objReq.Message.Send
End Sub
67. CDO 3.0 Dim aPerson as new Person
Dim rs as RecordSet
Rs.open “file://./backofficestorage/dom/MBX/user/contacts”
rs.MoveFirst
While NOT rs.EOF
aPerson.DataSource.Open rs.Fields( “DAV:HREF”)
Debug.Print aPerson.FirstName
Debug.Print aPerson.LastName
Debug.Print aPerson.MailingAddress
rs.MoveNext
Wend
68. CDOSYS Objektbibliothek basierend auf SMTP und NNTP Protokoll Standard
Wird mit Windows 2000 mitgeliefert
CDOSYS = CDO 2.0
Features:
Programmatische Auswahl des SMTP Hosts
Unterstützt Transport und Protokoll Events
Erzeugen von MIME/MHTML Nachrichten
ADO/OLEDB Unterstützung (Streams)
Dual Interface
Mögliche Anwendungen:
Bulk Mail
Mail basierte Replikation (z.b: Win2000 AD replication)
Viren Checker (Mail und News), Auto forward, Admin Alert
Spam Mail Erkennung (Sender, Scannen)
Senden von Webseiten (Graphic, Links)
Anhängen von Text an ausgehende Nachrichten (Transport)
69. CDOSYS Private Sub SimpleSend_Click()
Dim myMailItem As New Message
With myMailItem
.From = “spam@spam.de”
.To = "mikeklop@microsoft.com”
.Subject = ”Here is the MS home page."
. CreateMHTMLBody(“http://www.microsoft.com”,1)
.Send
End With
End Sub
70. DEMO: CDOSYS „I Love you“ Email Scanner
71. Exchange 2000 Events Store Events
Innerhalb einer Operation (Syncron):
open, save, create, delete, move
Benachrichtigung einer Operation (Asynchron):
save, create, delete, move, timer
Systemzustände
Startup/Shutdow
Workflow basieren auf Events
72. DEMO: Exchange 2000 Store Events Abfangen eines Speichervorgangs in einem öffentlichen Ordner und Setzen von Rechten
73. Workflow Engine Besteht aus 2 Komponenten
Workflow Engine
Evaluiert Bedingungen
Führt Aktionen bei Statusübergangen aus
Workflow Event Sink
Wird angesprungen, wenn Änderungen an einem Item in einem Ordner auftreten
Benutzt OnSyncSave, OnSyncDelete, OnTimer Store Events
Validatiert Benutzer/Author Security
Ruft die Workflow Engine
74. Workflow Engine Workflow Process Definition
Process Definition Elemente:
AuditTrailProvider
CommonScriptURL
Action Table
Mode (security)
75. Workflow Engine Workflow Action Table
Tabelle von Status-Übergängen
Bedingungen und Aktionen sind VB Scripts
Workflow Engine evaluiert die Bedingungen
Workflow Engine führt Aktionen aus
76. Workflow Engine Workflow Engine Security
Restricted Mode
Aktionen nur mit VB Script, “sandboxed”, kein CreateObject(), Nur WorkflowSession Objekt kann benutzt werden
Was kann im Restricted Mode gemacht werden ?
Properties des auslösenden Items modifizieren
Mails versenden (WorkflowMessage)
ACL auf das auslösende Item schreiben
In AuditTrail (Logging) schreiben
77. Workflow Engine Workflow Engine Security
Privileged Mode
Aktionen können Script oder eigene COM Objekte sein,
Script Engine erlaubt CreateObject()
Aktionen werden unter einem privilegierten NT account ausgeführt (in der Exchange Servers Gruppe)
Was kann im Privileged Mode gemacht werden ?
Alles
78. DEMO: Workflow Designer
79. XML in Exchange 2000 Alles wird über XML definiert
Schema
Security
Registrations
Formular und Ansichten Rendering
Datentypen
80. WEBDAV / HTTPDAV Protokoll HTTP 1.0 "read-only" Zugriff auf Dateien (GET Methode)
HTTP 1.1 Einfaches Schreiben (PUT und DELETE Methode)
HTTP-DAV ist eine Erweiterung des HTTP/1.1 Protokolls (RFC2518)
Dateisystem Operationen: MKCOL, COPY, MOVE, LOCK, UNLOCK
Manipulation von Properties: PROPFIND, PROPPATCH
Suchen auf Resourcen: SEARCH
(Die Exchange DAV-Engine implementiert ausserdem Replikation, Notifications, und Versioning)
81. WEBDAV / HTTPDAV Protokoll Generelle Struktur von WEBDAV Anfragen
Methode
Beschreibt Methode, die ausgeführt werden soll
Header
Beschreibt, wie die Aufgabe zu erledigen ist
Body (optional)
Definiert die Daten, die in der Methode benutzt werden, oder zusätzliche Anweisungen, wie die Methode ausgeführt werden soll
Im Body wird XML verwendet.
82. WEBDAV / HTTPDAV Protokoll Auslesen der Security eines Dokuments
Client sendet:
PROPFIND http://myserver/mymessage.doc HTTP/1.1Host: myserverContent-type: text/xml; charset="utf-8“Content-Length: xxxx<?xml version="1.0" encoding="utf-8" ?> <D:propfind xmlns:D="DAV:"> <D:prop xmlns:E=”http:/schemas.microsoft.com/exchange/”/> <E:ntsecuritydescriptor/> </D:prop></D:propfind>
83. DEMO: WEBDAV Setzen von Security auf Nachrichten via WEBDAV und XML verpackt in XMLHTTP Object
84. CDOEXM CDO für Exchange Management
CDOEXM erweitert CDO und ADSI mit Management Interfaces
IMailRecipient
Properties: Proxy addresses, Send/Deliver Limits, Forwarding properties
Methoden: Mail enable, mail disable
IMailBoxStore
Properties: Store Quotas, Mailbox location, Delegates
Methoden: Create, delete and move mailbox
85. DEMO: CDOEXM Setzen der Mailbox Quotas einer Exchange Mailbox
86. Exchange Schema
87. Überblick Exchange 2000 Architektur
88. Exchange Futures Exchange 2000 SP1
Visual Studio Server Explorer für Web Storage System
Navigation
Schema Editor
Formular Registrierungen
Event Registrierungen
“Drag and drop” von Exchange Ordnern in den Designer
Managed OLEDB Provider
Remotable
Läuft im DTC Umfeld (Distributed Transaction)
89. Demo Visual Studio
90. Exchange Futures Exchange 2000 und .NET
CDO.NET Klassen
Managed Provider
Remotable
Transaktionsfähig
In DTC integriert
ADO DataSet
XmlDataDocument
91. Zusammenfassung Server
Strategie geht Richtung einheitlichen Datenzugriff auf alle Datenbanken via ADO/OLEDB
Server Management = Directory Zugriff via ADSI/LDAP
Client
Strategie geht Richtung XML/HTTP-DAV
WebForms rendern HMTL, je nach Fähigkeit des Clients
Ziel ist es alle Arten von Devices zu unterstützen
92. Weitere Info’s? Exchange 2000 Resources:
msdn.microsoft.com/exchange
www.microsoft.com/exchange/trainevents/MEC00.htm
msdn.microsoft.com/library/techart/buildingsolutions.htm
msdn.microsoft.com/training/seminars/WebDev.asp#exchange
Externe Exchange Infos, Tools, etc.:
www.exchangestuff.com/
www.slipstick.com/index.htm
RFC’s:
www.gt.ed.net/mailmen/technical/
93. Weitere Info’s? Bücher
Programming Microsoft® Outlook® and Microsoft Exchange, Thomas Rizzo, MSPress
Programming WebStore Applications with Microsoft Exchange 2000 Server, Mindy Martin, MSPress
msdn quickie
www.microsoft.com/germany/msdn/quickie
msdn TechTalk-Newsgroup
news://msnews.microsoft.com/microsoft.public.de.german.techtalk
94. Fragen!?