Pilot Adressen Auswahl Bibliothek

(c) Jrgen Pisarz Berlin 1997


Kurzbeschreibung
================
PilotADR.dll ermglicht die Auswahl und den Export einer Adresse aus der
Pilot Adredatenbank, ohne das der PalmPilot Desktop laufen mu.
Fr Microsoft Word fr Windows 6, 7 und Lotus Word Pro 96 ist eine
Funktion realisiert, die mit wenigen Mausklicks eine Adresse an der
Cursorposition einfgt.


Beschreibung
============
Die DLL stellt die Funktionen "GetPilotADR" bzw.  "GetPilotAddress"
zur Verfgung, die einen Auswahldialog anzeigt, der alle in der
Pilot Adredatenbank verfgbaren Namen zeigt.  Die Anzeige,
Filterung und Sortierung der Namen kann variiert werden.
Wird ein Name ausgewhlt, so liefert die Funktion folgende Felder
der Datenbank:

"Nachname","Vorname","Titel","Firma","Fax","Adresse","Ort",
"Bundesland","PLZ","Land","Def1","Def2","Def3","Def4"

Das aufrufende Programm kann das nach belieben interpretieren.

Als Beispiel ist eine WinWord Vorlage bzw. ein Word Pro Script
beigefgt, die an der Cursorposition eine Adresse im Format

	Vorname Name
	Titel
	Firma
	Adresse
	PLZ Ort Bundesland
	Land

oder im Format

	Vorname
	Name
	Titel
	Firma
	Fax

einfgt.

Hinweise:
---------
PilotADR liet die Stze von der Festplatte. Sollte im PalmPilot Desktop
eine nderung an einer Adresse erfolgt sein (oder eine neue dazugekommen
sein), so mu die Datei erst erneut gespeichert werden, damit die
nderungen auch sichtbar werden.

Es wird die Adredatenbank des Benutzers gelesen, der aktiv war, als das
PalmPilot Desktop Programm zum letzten mal lief. Wenn also ein neuer
Benutzer ausgewhlt wird, mu das Desktop Programm erst beendet werden,
damit PalmADR auch die nderung erkennen kann.


Dateien
=======
LIESMICH.TXT    diese Datei
README.TXT      diese Datei in Englisch

PILOTADR.DLL    Funktionsbibliothek fr den Zugriff auf Pilot's Adressen

P_ADR_D6.DOT    Winword 6 Makro fr PilotADR.dll
P_ADR_D7.DOT    Winword 7 Makro fr PilotADR.dll
P_ADR_E6.DOT    Winword 6 Makro fr PilotADR.dll in Englisch
P_ADR_E7.DOT    Winword 7 Makro fr PilotADR.dll in Englisch

PILOTADR.LSS    WordPro 96 Script zum Einfgen einer Adresse
PILOTFAX.LSS    WordPro 96 Script zum Einfgen einer Faxnummer
P_ADR_DE.SMI    WordPro 96 Smarticon Definitionsdatei
P_ADR_EN.SMI    WordPro 96 Smarticon Definitionsdatei in Englisch
PILOTADR.BMP    WordPro 96 Smarticon Bitmap
PILOTFAX.BMP    WordPro 96 Smarticon Bitmap


Installation
============
PilotADR.DLL
------------
Die Datei PilotADR.dll in das Systemverzeichnis von Windows kopieren
(z.B. C:\WINDOWS\SYSTEM).

Microsoft Word fr Windows 7.0
------------------------------
Die Datei P_ADR_D7.dot in das Autostartverzeichnis von Word kopieren
(z.B. C:\MSOFFICE\WINWORD\AUTOSTRT).

Microsoft Word fr Windows 6.0
------------------------------
Die Datei P_ADR_D6.dot in das Autostartverzeichnis von Word kopieren
(z.B. C:\MSOFFICE\WINWORD\AUTOSTRT).

Lotus Word Pro 96
-----------------
Die Dateien PILOTADR.LSS und PILOTFAX.LSS in das "Script"
Verzeichnis von Word Pro kopieren (z.B. C:\LOTUS\WORDPRO\SCRIPTS),
die Dateien PILOTADR.BMP, PILOTFAX.BMP und P_ADR_DE.SMI in das
"Icon" Verzeichnis von Word Pro kopieren (z.B. C:\LOTUS\WORDPRO\ICONS)

(P_ADR_E?.* ist dasselbe wie P_ADR_D?.*, nur mit englischen Mentexten)


Systemvoraussetzungen
=====================
Windows95, Pilot Desktop 1 oder 2
Microsoft Word fr Windows (Version 6, 7) oder Lotus Word Pro 96 fr
die Beispielmakros

Benutzung in Winword und Wordpro
================================
Cursor an die gewnschte Position bringen, Men "Einfgen - Adresse" (bzw.
Fax) whlen (oder Buch-Icon/Telefon-Icon in der Symbolleiste),
gewnschten Empfnger auswhlen, OK drcken (oder Return), fertig.
In WordPro ist eine Smarticon - Leiste "Pilot" mit den Symbolen
"Buch" und "Telefon" verfgbar.
Ein Kontextmen kann mit der rechten Maustaste aufgerufen werden.
Es kann hier die Sortierreihenfolge, die Darstellung und die
Filterung der Datenstze beeinflut werden.


Grund des Programmes
====================
Die im PalmPilot Desktop mitgelieferten Word-Makros finde ich
unbefriedigend und umstndlich.


Technische Hinweise
===================
PilotADR.dll (Version: 1.0)
---------------------------

exportierte Funktionen:

	GetPilotADR(Sort, Display, Filter, Menu: Integer; ADR:  PChar):Bool
	GetPilotAddress(ADR :  PChar):Bool


GetPilotADR(Sort, Display, Filter, Menu: Integer; ADR:  PChar):Bool
-------------------------------------------------------------------
Zeigt einen Dialog, der die Auswahl eines Namens erlaubt.  Der
Dialog enthlt eine Liste von Adre-Eintrgen.  Besitzt ein Eintrag
mehrere Faxnummern, so wird er auch mehrfach aufgefhrt.
In der Titelzeile wird der aktuelle Benutzer gezeigt.  Ein Eintrag
kann durch Eingabe einer Zeichenfolge gesucht werden (Wie im Pilot).
Die Eingabe erscheint statt des Benutzers in der Titelzeile; sie
kann mit der Rcktaste korrigiert werden.  Wird ein Eintrag
ausgewhlt, so liefert die Funktion den Wert "True" und gibt in ADR
einen Datensatz zurck.  Wird der Dialog abgebrochen, so liefert die
Funktion den Wert "False".  ADR wird nicht verndert.

Die Liste kann durch die Parameter wie folgt verndert werden:

	Sort = 0 :  Sortierung nach Name, Darstellung "Vorname Name"
             = 1 :  Sortierung nach Name, Darstellung "Name, Vorname"
	     = 2 :  Sortierung nach Firma, Darstellung "Firma, Name"

Besitzt ein Datensatz keinen Eintrag unter "Name", so wird
stattdessen der Eintrag "Firma" gezeigt.

	Display = 0 : Nur Anzeige der Namen
		= 1 : Anzeige von Namen und Adressen
		= 2 : Anzeige von Namen und Faxnummern

	Filter = 0 : Anzeige aller Eintrge der Pilot Datenbank
	       = 1 : nur Eintrge, deren Adrefeld nicht leer ist
	       = 2 : nur Eintrge, deren Faxnummer-Feld nicht leer ist.

	Menu = 0 : Das Kontextmen ist nicht verfgbar
	     = 1 : Das Kontextmen ist verfgbar

Im Kontextmen knnen die ersten drei Parameter dynamisch verndert
werden.

Der Datensatz wird im "Comma Delimited Format" geliefert, d.h. die
einzelnen Datenstze sind in Anfhrungszeichen (") eingeschlossen, die
voneinander durch Komma getrennt sind.  Die Datenfelder sind oben
beschrieben. Sollte ein Datensatz nicht vorhanden sein, so wird eine leere
Zeichenkette geliefert.

Das aufrufende Programm mu fr gengend Speicherplatz bei ADR sorgen.  Die
Lnge der zurckgegeben Zeichenkette ist vom Eintrag in der Datenbank
abhngig.  Die DLL wird bei einer Datensatzlnge von mehr 3000 Zeichen
abstrzen, ich denke jedoch, das ein Eintrag selten mehr als 500 Zeichen
haben wird (meine sind alle kleiner 160 Zeichen).

GetPilotAddress(ADR :  PChar):Bool
----------------------------------
Das ist eine Kurzform der Funktion GetPilotADR(0,0,0,1,ADR).  Das
heit, es werden alle Eintrge in der Form "Vorname Name" gezeigt.
Die Funktion ist aus Grnden der Abwrtskombatibilitt mit der
Version 0.6 vorhanden.


P_ADR_D7.dot
------------
Makros:

	PilotAddress
	PilotFax

Anpassungen:

	Men:
	  >Einfgen | Adresse:  fhrt PilotAdress aus
	  >Einfgen | Fax:  fhrt PilotFax aus

	Symboleiste:
	  >Standard | Buch-Icon:  fhrt PilotAdress aus
	  >Standard | Telefon-Icon:  fhrt PilotFax aus

Als Beispiel folgt ein Ausschnitt aus dem Makro PilotAddress:

  Declare Function GetPilotAddress Lib "PilotADR.dll"(Adr As String) As
Long

  Sub MAIN

  'Reserviere Platz fr nullterm.
  String Adr$ = String$(500, "*")
  'Rufe dll
  If GetPilotADR(0,1,0,1,Adr$) Then
      'Interpretiere Rckgabe
      Dim N$(13)
      For I = 0 To 12
      	  N$(I) = Mid$(adr$, 2, InStr(adr$, ",") - 3)
          adr$ = Mid$(adr$, InStr(adr$, ",") + 1)
      Next I
      N$(13) = Mid$(adr$, 2, Len(adr$) - 1)

N$ enthlt nun die zurckgegeben Felder, die im folgenden auf
verschiedene Weise eingefgt werden.

Besteht der Wunsch auf eine andere Darstellung bei Aufruf der
Funktion, so sind die Parameter in der Zeile

  If GetPilotADR(0,1,0,1,Adr$) Then

entsprechend zu ndern.


P_ADR_D6.dot
------------
Ist der P_ADR_D7.dot hnlich.  Der Unterschied liegt in der Art
des Funktionsaufrufes.  Da Word 6 ein 16 Bit Programm ist und nicht
ohne weiteres eine 32 Bit DLL rufen kann, mu die Deklaration und
der Aufruf der DLL ber einen Umweg erfolgen.  Dazu werden spezielle
Transfer-Routinen von Windows 95 verwendet:

	Declare Function LoadLibraryEx32W Lib "kernel"(library As
       String, hfile As Long, dwFlags As Long) As Long
    Declare Function GetProcAddress32W Lib "kernel"(hnd As Long,
       fun As String) As Long
    Declare Function CallProc32W Lib "kernel"(adr As String,
       funadr As Long, paratran As Long, paranum As Long ) As Integer

	Sub MAIN

	'Reserviere Platz fr nullterm.    String
	Adr$ = String$(500, "*")

	'Rufe dll via thunk
	hnd = LoadLibraryEx32W("PilotADR.DLL", 0, 0)
	funadr = GetProcAddress32W(hnd, "GetPilotAddress")

	If CallProc32W(Adr$, funadr, 1, 1) Then

	...weiter wie oben

Anm.: Diese Transfer-Routinen sind nur in Windows 95 definiert, nicht in
Windows NT.

Scripts fr WordPro
-------------------
Die *.LSS Dateien enthalten die Basic-Scripts im Klartext.  Sie sind
den Makros in P_ADR_D7.dot sehr hnlich.
Die *.BMP enthalten die Bitmaps der Smarticons, die P_ADR_DE.SMI
enthlt die Smarticon Definition.


Copyrigths und Trademarks
=========================
PilotADR.dll V 1.0 ist Freeware, das Urheberrecht liegt bei Jrgen Pisarz
Berlin.
Die Bibliothek darf einzeln (mit dieser Liesmich - Datei), oder innerhalb
eines anderen Freeware - Produktes frei weitergegeben werden. Die
Verwendung innerhalb kommerzieller Produkte (auch Shareware) erfordert die
Erlaubnis des Autors.
Benutzung der Software auf eigenes Risiko, keine Haftung, keine Garantie.
P_ADR_??.* ist Public Domain.
PalmPilot ist Warenzeichen der U.S. Robotics, alle Rechte von
WordPro behlt sich die Lotus Development Corporation vor,
Winword gehrt Microsoft.


Vielen Dank
===========
an Markus Reichart, Andreas Knzig und Laurent Breyton fr Ideen und
Untersttzung beim Testen.


Aktuelle Version
================
ist zu finden:

	in Compuserve: GO PALMB, Lib 5
	  in Internet: http://ourworld.compuserve.com/homepages/pisarz


Kontakt
=======

	Internet: pisarz@compuserve.com
         CIS: 100415,3174


Viel Spa!
