1 / 29

Office 2000 COM Add-Ins Werkzeuge und Optimierung Tilo Böttcher Technical Specialist Microsoft GmbH tiloboet@microsoft.c

Office 2000 COM Add-Ins Werkzeuge und Optimierung Tilo Böttcher Technical Specialist Microsoft GmbH tiloboet@microsoft.com. Office 2000 COM Add-Ins Werkzeuge und Optimierung.

corbett
Download Presentation

Office 2000 COM Add-Ins Werkzeuge und Optimierung Tilo Böttcher Technical Specialist Microsoft GmbH tiloboet@microsoft.c

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Office 2000 COM Add-InsWerkzeuge und OptimierungTilo BöttcherTechnical SpecialistMicrosoft GmbHtiloboet@microsoft.com

  2. Office 2000 COM Add-InsWerkzeuge und Optimierung • Nach gut zwölf Monaten Office 2000 wollen wir neben einem Überblick über die programmatischen Erweiterungsmöglichkeiten mit COM Add-Ins in den verschiedenen Office 2000 Anwendungen auch Möglichkeiten für das Optimieren von VB/VBA Applikationen aufzeigen.

  3. Office 2000 COM Add-InsWerkzeuge und Optimierung • Was Sie heute erwartetEin Überblick sowie die Klärung einiger Fragen • Erweitern aber wie ? • Sicher (gegen Angriffe und unberechtigte Veränderungen) ? • Robust • Schnell (beim Start, beim Beenden, im Zugriff auf Datenbanken, Informationsaustausch etc.) ? • Wiederverwendbar – modular ?

  4. Agenda • SR1a/OL 2000 Security Patch Overview • COM Add-In Entwicklung – Werkzeuge und Erfahrungen • Überblick: COM Add-Ins mit VB/VBA sowie C++ und ATL entwickeln • Codeoptimierung • Kapselung • Eventhandling • Tipps

  5. Agenda • SR1a/OL 2000 Security Patch Overview • COM Add-In Entwicklung – Werkzeuge und Erfahrungen • Überblick: COM Add-Ins mit VB sowie C++ und ATL entwickeln • Codeoptimierung • Kapselung • Eventhandling • Tipps

  6. SR1a/OL 2000 Security Patch Overview • Allgemeine Fixes • Outlook 2000 Migration von Win 9.x to W2K • Excel 2000 SYLK File Security Update • Excel Programmatic Text Export Update • WORM. Explore.Zip Virus Update • IE 5.0a auf IE 5.1 Update • System Komponenten Updates auf Windows 2000 Stand (incl. MDAC 2.1 auf 2.5, OleAut, Richedit, Windows Installer 1.0 auf 1.1, Web Folders, Jet). • PhotoDraw 2000 Version 2

  7. SR1a/OL 2000 Security Patch Overview • Outlook 2000 Security Patch • Block All Access to the following potentially unsafe attachment types: EXE, COM, URL, LNK, BAT, PIF, INF, REG, CMD, BAS, ISP, INS, CRT, PCD, MST, SCR, HLP, CHM, CPL, VBS, ASF, JS, MDB • Prevent script in One-off forms from executing. (no more prompt) • Always Bring up UI prompt for programmatic access to the Item.Send method in the Outlook Object Model • Always Bring up UI prompt for programmatic access to Address Book Entries, Contact Email Address, and Recipient information in Outlook

  8. SR1a/OL 2000 Security Patch Overview • Was wurde für Developer im SR1a gefixt?Fixes in allen Bereichen (auch MDAC, IE, WEB Server) ...einige Auszüge • Allows multiple multi-threaded (MT) project types. • Forms3 setfocus works with Modal UserForms as expected. • Properly licenses when deploying a DLL with controls on a computer that does not have Office 2000 Developer Edition. • Updates to RichEdit control (RichEd20.dll) for improved text handling and display. • WebCalc retains data and format of cells as expected in scripts, applets, and other programming elements in Internet Explorer 5.

  9. Agenda • SR1a/Security Patch Overview • COM Add-In Entwicklung – Werkzeuge und Erfahrungen • Überblick: COM Add-Ins mit VB/VBA sowie C++ und ATL entwickeln • Codeoptimierung • Kapselung • Eventhandling • Tipps

  10. COM Add-In Entwicklung – Werkzeuge und Erfahrungen • COM Add-Ins mit VBA entwickeln Neues COM Add-In Projekt *.dll DesignerMenüleisten, ButtonsWithEvents, Forms Office VBA IDE Kompilierung/Registrierung(nur *.dll möglich) Setup erstellen (Add-In) Verteilung

  11. COM Add-In Entwicklung – Werkzeuge und Erfahrungen • COM Add-Ins mit VB entwickeln Add-In *.ocx *.Exe *.dll Designer konfigurieren (Impl. IDTExtensibility2) Menüleisten, Buttons WithEvents, Forms Visual Basic 6.0 Kompilierung/Registrierung Setup erstellen (Add-In)Verpackungs- und Weitergabeass. Verteilung

  12. COM Add-In Entwicklung – Werkzeuge und Erfahrungen • COM Add-Ins mit C++ und ATL entwickeln ATL COM Wizard ATL COM Komponente Registry IDTExtensibility2 Objektmodell von Office 2000 und verwendeter App importieren Visual C++ 6.0 Interaktion mit UI Verteilung Menüeinträge Buttons Base Event Klassen Sink Events Map TestKompilierung App Events handlen

  13. DemoCOM Add-Ins

  14. Agenda • SR1a/Security Patch Overview • COM Add-In Entwicklung – Werkzeuge und Erfahrungen • Überblick: COM Add-Ins mit VB/VBA sowie C++ und ATL entwickeln • Codeoptimierung • Kapselung • Eventhandling • Tipps

  15. Codeoptimierung • Verwendung von Klassen – Kapselung • Einfach weiterzuverwenden • Einfach zu Projekten hinzuzufügen • Weniger Abhängigkeiten zwischen den Modulen • Macht Task Partitionierung und Spezialisierung möglich • Übersichtlicher: Verbirgt Teile komplexer Prozesse • Vereinfacht Entwicklung und Debugging • Codeverwaltung: Updates an zentraler Stelle nur einmal vonnöten • Mehrfache Instanzeierung möglich

  16. Codeoptimierung • Verwendung von Klassen – Kapselung • Erzeugen einer Klasse • Einfügen eines Klassenmoduls • Sinnvollen Namen verwenden • Initialize und Terminate Events handlen • Eigenschaften und Methoden festlegen • Objekte instanzeieren • Objektvariablen festlegen • New Schlüsselwort verwenden • Zugriff auf Eigenschaften und Methoden Einfachste EigenschaftPublic Variable im Klassenmodul MethodenPublic procedure Sub oder Function Rückgabe von Werten möglich Übergabe von Args möglich Wird I. A. so verwendet

  17. Codeoptimierung 1 `Klassenname: BeispielklasseA Public Sub TuEtwas() Public Function xy() As Long End Sub 2 Dim ObjektA as BeispielklasseA Set ObjektA = New BeispielklasseA .... TuEtwas mit Funktion xy ....... Methoden und Eigenschaften ... Set ObjektA = Nothing

  18. Codeoptimierung • Verwendung von Collections • Manchmal wird eine unbekannte Anzahl an Objekten benötigt ... • Eine Collection kann andere Objekte aufnehmen • Mit NEW kann eine neue Collection angelegt werden • Methoden • Add – Hinzufügen eines Objektes • Item (default) – Referenziert ein Objekt • Remove – Löscht ein Objekt • Count – Eigenschaft • Eigenschaften und Einschränkungen: • Collection löschen durch Neudefinition der Elemente oder Nothing setzen • Public/Global Collections können gefährlich sein • Keine Kontrolle über den Inhalt möglich •  Kapselung in Klassen (Collection Class) • Collections bestehen aus impliziten Objektpointern

  19. Codeoptimierung `Ansprechen von Items colItems.Item(1).MethodName colItems.Item(„Bär").MethodName `Durchwandern der Collection For Each objItem in colItems objItem.MethodName Next

  20. Codeoptimierung • Eventhandling • WithEvents -- EventsenkenVBA Schlüsselwort – erlaubt Reaktion auf ObjektEvents (COM)VB/VBA Objektbrowser stellt dies am besten darDeklaration einer Variablen „spiegelt“ das aktuelle ObjektPrivate WithEvents obj As SomeObject • Muß in einem Klassenmodul oder Form vorgenommen werden, erkennbar auch im Editor mit Autoausfüllen-Menüs

  21. Codeoptimierung • Eventhandling -- WithEvents 1 Private Sub Class_Initialize() Set mobjExcelApp = New Excel.Application mobjExcelApp.Visible = True End Sub Klassenmodul 2 Dim mobjExcelEvents As clsExcelEvents Sub InitExcelEvents() Set mobjExcelEvents = New clsExcelEvents End Sub Standardmodul

  22. Codeoptimierung COM Server Private WithEvents objSomething _ As SomeObject Exponiertes Objekt KlassenModul Objektvariable Pointer auf das Objekt Ereignis Prozedur ObjectEvents triggern Prozeduren im Klassen- modul Reguläres Modul Objektvariable Sub objSomething_SomeEvent() End Sub Pointer auf das KlassenModul

  23. Codeoptimierung • Eventhandling -- RaiseEvents • Raising Events falls “eingebaute” Events nicht ausreichen (seit VB 5) • Events im Deklarationsbereich festlegen • RaiseEvent Schlüsselwort im Code nutzen • Event Senken • Applikationen werden benachrichtigt, wenn Events eintreten • WithEvents in Klassenmodulen nutzen • Formular-Modul ist am einfachsten (immer da)

  24. Codeoptimierung 1 Public Event validateRecord(ByVal operation As String, ByRef cancel As Boolean) Deklarationsteil im Klassenmodul 2 RaiseEvent validateRecord("Add", bCancel) etwas später im Code Private Sub dbCtl1_validateRecord(ByVal operation As String, _ cancel As Boolean) Dim msgString As String Dim iIndx As Integer If (operation = "Save") Then If (Len(Text1.Text)<1) Then msgString = "Bitte einen Titel eingeben!" & vbCrLf msgString = msgString & "Speichern wurde abgebrochen" iIndex = MsgBox(msfString, vbCritical, _ "VB DataControl") Cancel = true Else Cancel = false End If End If End Sub 3

  25. Codeoptimierung • 10 Tipps für die Optimierung von VB/VBA COM Add-Ins • timeGetTime wesentlich schneller als die Timer Funktion • vbNullString anstelle von “” zur Initialisierung nutzen • String concatenation: Sehr teuer!! • Like Operator für Zeichenvergleich nutzen • Objekte außerhalb von Schleifen referenzieren

  26. Codeoptimierung • 10 Tipps für die Optimierung von VB/VBA COM Add-Ins (Cont.) • DoEvents kosten Zeit! • Case Statements unter VBA “vorsortieren” • For Each…Next wesentlich schneller als For … Next in einer Collection • Löschen einer Collection am schnellsten durch Pointer auf eine neue Collection setzen • Early Binding vs. Late Binding!

  27. Demo10 Tips zur VB/VBA Codeoptimierung

  28. Links und Literatur http://msdn.microsoft.com/officedevhttp://officeupdate.microsoft.comhttp://www.microsoft.com/germany/msdn/techtalkhttp://msdn.microsoft.com/libraryhttp://www.vcdj.comhttp://www.sliptstick.comhttp://www.microeye.comhttp://www.microsoft.com/germany/mspresshttp://www.wrox.com (Professional ATL COM Programming by R. Grimes)

  29. Q & A ... where do you want to go today?

More Related