37
Wizards & Wizards & Builders Builders GmbH GmbH Erstellen von OLE- Erstellen von OLE- Servern Servern Design von OLE-Server- Design von OLE-Server- Anwendungen unter Anwendungen unter Microsoft Visual FoxPro Microsoft Visual FoxPro

Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Embed Size (px)

Citation preview

Page 1: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Erstellen von OLE-ServernErstellen von OLE-Servern

Design von OLE-Server-Design von OLE-Server-Anwendungen unterAnwendungen unter

Microsoft Visual FoxProMicrosoft Visual FoxPro

Page 2: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Diese Schulung dient der Einführung in die Erstellung

von eigenen OLE-Server-Anwendungen mit

Microsoft Visual FoxPro

Page 3: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

ThemenübersichtThemenübersicht

Einführung in OLEEinführung in OLEAnforderungen, OLE-Bereiche, Anforderungen, OLE-Bereiche,

ErläuterungenErläuterungen Einführung in COMEinführung in COM

COM-Definition, VorteileCOM-Definition, Vorteile Erstellen von eigenen OLE-ServernErstellen von eigenen OLE-Servern

VFP-Befehle und HinweiseVFP-Befehle und Hinweise BeispielanwendungBeispielanwendung

Applikationsklasse, Applikationsklasse, Administrationsklasse, Administrationsklasse, GeschäftsobjektklasseGeschäftsobjektklasse

Page 4: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

OLE-TeilbereicheOLE-Teilbereiche

Darstellung des Darstellung des Leistungsumfangs von Leistungsumfangs von

Microsoft - OLE 2.0Microsoft - OLE 2.0

Page 5: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

AnforderungenAnforderungen

KundenforderungenKundenforderungen neue Funktionalitätenneue Funktionalitäten Integration von AnwendungenIntegration von Anwendungen Konsistenz zwischen versch. App.Konsistenz zwischen versch. App.

Technische ForderungenTechnische Forderungen AnwendungsarchitekturAnwendungsarchitektur PerformancePerformance

Page 6: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

OLE-Basis-BereicheOLE-Basis-Bereiche

Component Object Model Component Object Model (COM)(COM)

Compound FilesCompound Files Monikers (Objekt-Referenzen)Monikers (Objekt-Referenzen) Uniform Data TransferUniform Data Transfer OLE Drag & DropOLE Drag & Drop OLE AutomationOLE Automation

Page 7: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

OLE-IntegrationsbereicheOLE-Integrationsbereiche

OLE EmbeddingOLE Embedding OLE LinkingOLE Linking

Moniker für DatenbezugMoniker für Datenbezug Daten ggf. in embedded objectDaten ggf. in embedded object

In-Place-ActivationIn-Place-Activation Embedded/Linked statt in eigenem Embedded/Linked statt in eigenem

Fenster direkt im Container bearbeitenFenster direkt im Container bearbeiten Tools im Document ContextTools im Document Context

Page 8: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Erläuterungen 1/3Erläuterungen 1/3

Compound FileCompound File Root-Store, Sub-Store (Stream,Sub-Root-Store, Sub-Store (Stream,Sub-

Store)Store) Transaktion, Garbage-CollectionTransaktion, Garbage-Collection

Uniform Data TransferUniform Data Transfer Basis für Clipboard, Drag&Drop, Daten-Basis für Clipboard, Drag&Drop, Daten-

transfer in OLE-Documentstransfer in OLE-Documents

OLE-Drag & DropOLE-Drag & Drop Ctrl Move->Copy, CtrlShift=Link, EscCtrl Move->Copy, CtrlShift=Link, Esc

Page 9: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Erläuterungen 2/3Erläuterungen 2/3

OLE-AutomationOLE-Automation Publikation von Eigenschaften (mit Typ) und Publikation von Eigenschaften (mit Typ) und

Methoden (mit Paramtern) über eine Type Methoden (mit Paramtern) über eine Type LibraryLibrary

Angesteuert von Programmiersprache oder Angesteuert von Programmiersprache oder Makro / Makro-Sprache (VBA/Script)Makro / Makro-Sprache (VBA/Script)

OLE-DocumentsOLE-Documents Container (Präsentationsfläche)Container (Präsentationsfläche) Server (Datenangebot aller Art)Server (Datenangebot aller Art) Cache (Abbild falls Server fehlt)Cache (Abbild falls Server fehlt)

Page 10: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Erläuterungen 3/3Erläuterungen 3/3

Embedding & LinkingEmbedding & Linking Embedding ruft Server für BearbeitungEmbedding ruft Server für Bearbeitung Linking speichert nur MonikerLinking speichert nur Moniker Emulation nutzt andere ServerEmulation nutzt andere Server Conversion wandelt Servertyp umConversion wandelt Servertyp um

In-Place-ActivationIn-Place-Activation siehe Embeddingsiehe Embedding Definition von Toolbars/Fenster u.ä.Definition von Toolbars/Fenster u.ä.

Page 11: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Component Object ModelComponent Object Model

Die wichtigsten Die wichtigsten Grundlagen von Grundlagen von

Microsoft COMMicrosoft COM

Page 12: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

AllgemeinAllgemein

Binärer Standard für InterfaceBinärer Standard für Interface Interface ist eine PointerlisteInterface ist eine Pointerliste enthält Zeiger auf Funktionenenthält Zeiger auf Funktionen Beliebig viele Interfaces erlaubtBeliebig viele Interfaces erlaubt Basis-Interface: IunknownBasis-Interface: Iunknown

AddrefAddref ReleaseRelease QueryInterfaceQueryInterface

Page 13: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

FunktionalitätFunktionalität

Mit Hilfe der CLSID leistet COM:Mit Hilfe der CLSID leistet COM: Suchen in RegistrySuchen in Registry Ggf. Verbindungsherstellung RemoteGgf. Verbindungsherstellung Remote Laden und Starten des ServersLaden und Starten des Servers Aufruf zur ObjekterzeugungAufruf zur Objekterzeugung Rückgabe ObjektreferenzRückgabe Objektreferenz Abwicklung der KommunikationAbwicklung der Kommunikation Ggf. Beenden des ServersGgf. Beenden des Servers

Page 14: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

AnforderungenAnforderungen

Anforderungen an OLE-Server:Anforderungen an OLE-Server: IClassFactory-InterfaceIClassFactory-Interface DLL: DllGetClassObject bzw.DLL: DllGetClassObject bzw.

EXE: RegisterClassObjectEXE: RegisterClassObject DLL: DllCanUnloadNow bzw.DLL: DllCanUnloadNow bzw.

EXE: RevokeClassObjectEXE: RevokeClassObject

Page 15: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

VorteileVorteile

PfadunabhängigkeitPfadunabhängigkeit mehrere Provider für Servicemehrere Provider für Service Eindeutige Kennung (GUIDs)Eindeutige Kennung (GUIDs) Einheitliches APIEinheitliches API Einheitlich Lokal und RemoteEinheitlich Lokal und Remote Verschiedene InterfacesVerschiedene Interfaces Mehrfachnutzung von InstanzenMehrfachnutzung von Instanzen VersionierungVersionierung

Page 16: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Erstellen von OLE-ServernErstellen von OLE-Servern

Hinweise zur Erstellung Hinweise zur Erstellung von von

OLE-Servern mit OLE-Servern mit Microsoft Visual FoxProMicrosoft Visual FoxPro

Page 17: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Verbesserungen in VFP Verbesserungen in VFP 6.06.0

Apartment Model ThreadingApartment Model Threading Disablen BenutzeroberflächeDisablen Benutzeroberfläche Dual-Interface-SupportDual-Interface-Support Multiple Runtime-BibliothekenMultiple Runtime-Bibliotheken Type-LibrariesType-Libraries Exception HandlingException Handling Array-Handling / ÜbergabeArray-Handling / Übergabe

Page 18: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Befehle in VFP 6.0Befehle in VFP 6.0

ComArray()ComArray() ComClassInfo()ComClassInfo() Sys(3004), Sys(3005)Sys(3004), Sys(3005) ComReturnError()ComReturnError() Sys(2334) Sys(2334) (Server Invocation Mode)(Server Invocation Mode)

Sys(2335) Sys(2335) (Unattended Server Mode)(Unattended Server Mode)

Page 19: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Eigenschaften in VFP 6.0Eigenschaften in VFP 6.0

_VFP.Startmode_VFP.Startmode Application.ServernameApplication.Servername „„Application“ nicht mehr nach Application“ nicht mehr nach

außen sichtbar - aber selbst außen sichtbar - aber selbst definierbardefinierbar

außerdem:außerdem: Createobjectex für SelbstaufrufCreateobjectex für Selbstaufruf

Page 20: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Hinweise zu ModellenHinweise zu Modellen

Siehe Objektmodelle von Siehe Objektmodelle von Outlook, Excel, WinWordOutlook, Excel, WinWord

Applikations-ObjektApplikations-Objekt

Probleme mit CollectionsProbleme mit Collections mit Assign-Methoden realisierbar...mit Assign-Methoden realisierbar...

Probleme mit Child-ObjektenProbleme mit Child-Objekten

Page 21: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Registrieren von ServernRegistrieren von Servern

Anmelden Anmelden ..

EXE: EXE:

<EXE> /regserver<EXE> /regserver DLL:DLL:

REGSRV32.EXEREGSRV32.EXE

<my.dll><my.dll>

Abmelden Abmelden ..

EXE:EXE:

<EXE> <EXE> /unregserver/unregserver

DLL:DLL:

REGSRV32.EXE REGSRV32.EXE

/u <my.dll>/u <my.dll>

Page 22: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Anmelden Remote-ServerAnmelden Remote-Server

Server Server ..

EXE-Aufruf mit EXE-Aufruf mit /regserver/regserver

RACMGR32.EXERACMGR32.EXE Allow Remote Allow Remote

Creates by KeyCreates by Key Allow Remote Allow Remote

ActivationActivation

Client Client ..

VBR-Datei auf VBR-Datei auf Client kopierenClient kopieren

CLIREG32.EXE CLIREG32.EXE <myserver.vbr><myserver.vbr>

Eintrag Netz-Eintrag Netz-werkadresse werkadresse und -protokollund -protokoll

Page 23: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Eigene Remote-ServerEigene Remote-Server

Mögliche Verwendungszwecke:Mögliche Verwendungszwecke: Reindizieren/Packen TabellenReindizieren/Packen Tabellen Komprimieren/DatensicherungKomprimieren/Datensicherung BuchungsläufeBuchungsläufe BerichtserstellungBerichtserstellung FaxversandFaxversand

Hinweis: CREATEOBJECTEX nicht vergessen!Hinweis: CREATEOBJECTEX nicht vergessen!

Page 24: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Aufräumen RegistryAufräumen Registry

Schlüssel: HKEY_CLASSES_ROOTSchlüssel: HKEY_CLASSES_ROOT

Einträge:Einträge: <DLL-Name>.<OLE-Klasse><DLL-Name>.<OLE-Klasse> CLSID (Verweis TLB, Category)CLSID (Verweis TLB, Category) TypelibTypelib Component CategoriesComponent Categories

Page 25: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

BeispielanwendungBeispielanwendung

Darstellung der OLE-Darstellung der OLE-Objekte in Account View Objekte in Account View

unter Visual FoxProunter Visual FoxPro

Page 26: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Übersicht OLE-ObjekteÜbersicht OLE-Objekte

Application (Anwendung)Application (Anwendung) Einloggen der AnwendungEinloggen der Anwendung Erzeugt Objekte auf ApplikationsebeneErzeugt Objekte auf Applikationsebene

Admin_Manager (Mandant)Admin_Manager (Mandant) Erzeugt GeschäftsobjekteErzeugt Geschäftsobjekte

Business (Geschäftsobjekt/BO)Business (Geschäftsobjekt/BO) Zugriffe auf Datensätze, Masken usw.Zugriffe auf Datensätze, Masken usw.

Page 27: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

ApplikationsklasseApplikationsklasse

Login ( user, pwd )Login ( user, pwd ) Anmelden der Anwendung / BenutzerAnmelden der Anwendung / Benutzer

Create_Object (form, para )Create_Object (form, para ) Erzeugen Objekte ApplikationsebeneErzeugen Objekte Applikationsebene

Menu_Exec ( event, para )Menu_Exec ( event, para ) Ausführen Menü auf Ausführen Menü auf

ApplikationsebeneApplikationsebene

Open_Admin ( admin, para /e )Open_Admin ( admin, para /e )

Page 28: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

AdministrationsklasseAdministrationsklasse

Create_Object ( form, para )Create_Object ( form, para ) Erzeugen eines GeschäftsobjektsErzeugen eines Geschäftsobjekts

Get_Field ( field )Get_Field ( field ) Lesen von PräferenzenLesen von Präferenzen

Set_Field ( field, value )Set_Field ( field, value ) Setzen von PräferenzenSetzen von Präferenzen

Page 29: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

BO - EigenschaftenBO - Eigenschaften

List_class / List_vcxList_class / List_vcx Klasse für ListenansichtKlasse für Listenansicht

Menu_fileMenu_file Menüdefinitionsdatei für KontextmenüMenüdefinitionsdatei für Kontextmenü

Pick_class / Pick_vcxPick_class / Pick_vcx Klasse für Lookup-AuswahlKlasse für Lookup-Auswahl

Setup_class / Setup_vcxSetup_class / Setup_vcx Klasse für StammdatenbearbeitungKlasse für Stammdatenbearbeitung

Page 30: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

BO - AnzeigefunktionenBO - Anzeigefunktionen

ShowShow Aufruf von List oder Picklist (pseudomodal)Aufruf von List oder Picklist (pseudomodal)

Show_ListShow_List Anzeige ListendarstellungAnzeige Listendarstellung

Show_PicklistShow_Picklist Anzeige PicklistenmaskeAnzeige Picklistenmaske

Show_SetupShow_Setup Anzeige StammdatenmaskeAnzeige Stammdatenmaske

Page 31: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

BO - ZustandsabfragenBO - Zustandsabfragen

Delete_EnabledDelete_Enabled Insert_EnabledInsert_Enabled Read_EnabledRead_Enabled Update_EnabledUpdate_Enabled

Page 32: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

BO - PointerfunktionenBO - Pointerfunktionen

LocateLocate Move_FirstMove_First Move_LastMove_Last Move_NextMove_Next Move_PreviousMove_Previous Move_PointerMove_Pointer Set_KeySet_Key

Page 33: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

BO - DatensatzfunktionenBO - Datensatzfunktionen

Create_RecordsetCreate_Recordset Record_DeleteRecord_Delete Record_InsertRecord_Insert Get_FieldGet_Field Set_FieldSet_Field Table_UpdateTable_Update Cancel_UpdateCancel_Update

Page 34: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

BO - diverse FunktionenBO - diverse Funktionen

Menu_ExecMenu_Exec Ausführen KontextmenüfunktionAusführen Kontextmenüfunktion

Meth_ExecMeth_Exec Ausführen Methode GeschäftsobjektAusführen Methode Geschäftsobjekt

Generate_ScriptGenerate_Script Ausgabe Script für DatenobjektAusgabe Script für Datenobjekt

Page 35: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Was ist zu beachten?Was ist zu beachten?

OLE hat sehr OLE hat sehr viele Einsatz-viele Einsatz-bereiche...bereiche...

Objektmodell Objektmodell einfach halteneinfach halten

Interface kleinInterface klein OLE-BOs OLE-BOs

separat separat definierendefinieren

Page 36: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Vielen Dank!Vielen Dank!

Das waren die Themen:Das waren die Themen: Einführung in OLEEinführung in OLE

Anforderungen, OLE-Anforderungen, OLE-Bereiche, ErläuterungenBereiche, Erläuterungen

Einführung in COMEinführung in COM COM-Definition, VorteileCOM-Definition, Vorteile

Erstellen von eigenen Erstellen von eigenen OLE-ServernOLE-Servern VFP-Befehle und HinweiseVFP-Befehle und Hinweise

BeispielanwendungBeispielanwendung Applikationsklasse, Applikationsklasse,

Administrationsklasse, Administrationsklasse, GeschäftsobjektklasseGeschäftsobjektklasse

Page 37: Wizards & Builders GmbH Erstellen von OLE-Servern Design von OLE-Server- Anwendungen unter Microsoft Visual FoxPro

Wizards & Wizards & Builders GmbH Builders GmbH

Wenn Fragen bestehen:Wenn Fragen bestehen:

Wizards & BuildersWizards & BuildersMethodische Software-Methodische Software-

Entwicklung GmbHEntwicklung GmbH

Frankfurter Str. 21bFrankfurter Str. 21b

61476 Kronberg61476 Kronberg

Tel.: 06173-950906Tel.: 06173-950906

Fax: 06173-950907Fax: 06173-950907

CIS: 101605,175CIS: 101605,175