Erstellen von OLE-Servern Design von OLE-Server-Anwendungen unter Microsoft Visual FoxPro
Diese Schulung dient der Einführung in die Erstellung von eigenen OLE-Server-Anwendungen mit Microsoft Visual FoxPro
Themenübersicht Einführung in OLE Anforderungen, OLE-Bereiche, Erläuterungen Einführung in COM COM-Definition, Vorteile Erstellen von eigenen OLE-Servern VFP-Befehle und Hinweise Beispielanwendung Applikationsklasse, Administrationsklasse, Geschäftsobjektklasse
Darstellung des Leistungsumfangs von Microsoft - OLE 2.0 OLE-Teilbereiche Darstellung des Leistungsumfangs von Microsoft - OLE 2.0
Anforderungen Kundenforderungen Technische Forderungen neue Funktionalitäten Integration von Anwendungen Konsistenz zwischen versch. App. Technische Forderungen Anwendungsarchitektur Performance
OLE-Basis-Bereiche Component Object Model (COM) Compound Files Monikers (Objekt-Referenzen) Uniform Data Transfer OLE Drag & Drop OLE Automation
OLE-Integrationsbereiche OLE Embedding OLE Linking Moniker für Datenbezug Daten ggf. in embedded object In-Place-Activation Embedded/Linked statt in eigenem Fenster direkt im Container bearbeiten Tools im Document Context
Erläuterungen 1/3 Compound File Uniform Data Transfer OLE-Drag & Drop Root-Store, Sub-Store (Stream,Sub-Store) Transaktion, Garbage-Collection Uniform Data Transfer Basis für Clipboard, Drag&Drop, Daten-transfer in OLE-Documents OLE-Drag & Drop Ctrl Move->Copy, CtrlShift=Link, Esc
Erläuterungen 2/3 OLE-Automation OLE-Documents Publikation von Eigenschaften (mit Typ) und Methoden (mit Paramtern) über eine Type Library Angesteuert von Programmiersprache oder Makro / Makro-Sprache (VBA/Script) OLE-Documents Container (Präsentationsfläche) Server (Datenangebot aller Art) Cache (Abbild falls Server fehlt)
Erläuterungen 3/3 Embedding & Linking In-Place-Activation Embedding ruft Server für Bearbeitung Linking speichert nur Moniker Emulation nutzt andere Server Conversion wandelt Servertyp um In-Place-Activation siehe Embedding Definition von Toolbars/Fenster u.ä.
Component Object Model Die wichtigsten Grundlagen von Microsoft COM
Allgemein Binärer Standard für Interface Interface ist eine Pointerliste enthält Zeiger auf Funktionen Beliebig viele Interfaces erlaubt Basis-Interface: Iunknown Addref Release QueryInterface
Funktionalität Mit Hilfe der CLSID leistet COM: Suchen in Registry Ggf. Verbindungsherstellung Remote Laden und Starten des Servers Aufruf zur Objekterzeugung Rückgabe Objektreferenz Abwicklung der Kommunikation Ggf. Beenden des Servers
Anforderungen Anforderungen an OLE-Server: IClassFactory-Interface DLL: DllGetClassObject bzw. EXE: RegisterClassObject DLL: DllCanUnloadNow bzw. EXE: RevokeClassObject
Vorteile Pfadunabhängigkeit mehrere Provider für Service Eindeutige Kennung (GUIDs) Einheitliches API Einheitlich Lokal und Remote Verschiedene Interfaces Mehrfachnutzung von Instanzen Versionierung
Erstellen von OLE-Servern Hinweise zur Erstellung von OLE-Servern mit Microsoft Visual FoxPro
Verbesserungen in VFP 6.0 Apartment Model Threading Disablen Benutzeroberfläche Dual-Interface-Support Multiple Runtime-Bibliotheken Type-Libraries Exception Handling Array-Handling / Übergabe
Befehle in VFP 6.0 ComArray() ComClassInfo() Sys(3004), Sys(3005) ComReturnError() Sys(2334) (Server Invocation Mode) Sys(2335) (Unattended Server Mode)
Eigenschaften in VFP 6.0 _VFP.Startmode Application.Servername „Application“ nicht mehr nach außen sichtbar - aber selbst definierbar außerdem: Createobjectex für Selbstaufruf
Hinweise zu Modellen Siehe Objektmodelle von Outlook, Excel, WinWord Applikations-Objekt Probleme mit Collections mit Assign-Methoden realisierbar... Probleme mit Child-Objekten
Registrieren von Servern Anmelden . EXE: <EXE> /regserver DLL: REGSRV32.EXE <my.dll> Abmelden . EXE: <EXE> /unregserver DLL: REGSRV32.EXE /u <my.dll>
Anmelden Remote-Server EXE-Aufruf mit /regserver RACMGR32.EXE Allow Remote Creates by Key Allow Remote Activation Client . VBR-Datei auf Client kopieren CLIREG32.EXE <myserver.vbr> Eintrag Netz-werkadresse und -protokoll
Eigene Remote-Server Mögliche Verwendungszwecke: Reindizieren/Packen Tabellen Komprimieren/Datensicherung Buchungsläufe Berichtserstellung Faxversand Hinweis: CREATEOBJECTEX nicht vergessen!
Aufräumen Registry Schlüssel: HKEY_CLASSES_ROOT Einträge: <DLL-Name>.<OLE-Klasse> CLSID (Verweis TLB, Category) Typelib Component Categories
Darstellung der OLE-Objekte in Account View unter Visual FoxPro Beispielanwendung Darstellung der OLE-Objekte in Account View unter Visual FoxPro
Übersicht OLE-Objekte Application (Anwendung) Einloggen der Anwendung Erzeugt Objekte auf Applikationsebene Admin_Manager (Mandant) Erzeugt Geschäftsobjekte Business (Geschäftsobjekt/BO) Zugriffe auf Datensätze, Masken usw.
Applikationsklasse Login ( user, pwd ) Create_Object (form, para ) Anmelden der Anwendung / Benutzer Create_Object (form, para ) Erzeugen Objekte Applikationsebene Menu_Exec ( event, para ) Ausführen Menü auf Applikationsebene Open_Admin ( admin, para /e )
Administrationsklasse Create_Object ( form, para ) Erzeugen eines Geschäftsobjekts Get_Field ( field ) Lesen von Präferenzen Set_Field ( field, value ) Setzen von Präferenzen
BO - Eigenschaften List_class / List_vcx Menu_file Klasse für Listenansicht Menu_file Menüdefinitionsdatei für Kontextmenü Pick_class / Pick_vcx Klasse für Lookup-Auswahl Setup_class / Setup_vcx Klasse für Stammdatenbearbeitung
BO - Anzeigefunktionen Show Aufruf von List oder Picklist (pseudomodal) Show_List Anzeige Listendarstellung Show_Picklist Anzeige Picklistenmaske Show_Setup Anzeige Stammdatenmaske
BO - Zustandsabfragen Delete_Enabled Insert_Enabled Read_Enabled Update_Enabled
BO - Pointerfunktionen Locate Move_First Move_Last Move_Next Move_Previous Move_Pointer Set_Key
BO - Datensatzfunktionen Create_Recordset Record_Delete Record_Insert Get_Field Set_Field Table_Update Cancel_Update
BO - diverse Funktionen Menu_Exec Ausführen Kontextmenüfunktion Meth_Exec Ausführen Methode Geschäftsobjekt Generate_Script Ausgabe Script für Datenobjekt
Was ist zu beachten? OLE hat sehr viele Einsatz-bereiche... Objektmodell einfach halten Interface klein OLE-BOs separat definieren
Vielen Dank! Das waren die Themen: Einführung in OLE Einführung in COM Anforderungen, OLE-Bereiche, Erläuterungen Einführung in COM COM-Definition, Vorteile Erstellen von eigenen OLE- Servern VFP-Befehle und Hinweise Beispielanwendung Applikationsklasse, Administrationsklasse, Geschäftsobjektklasse
Wenn Fragen bestehen: Wizards & Builders Frankfurter Str. 21b Methodische Software-Entwicklung GmbH Frankfurter Str. 21b 61476 Kronberg Tel.: 06173-950906 Fax: 06173-950907 CIS: 101605,175