Test Mapi

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Statler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Di, 22. Jan 2008 9:49
Wohnort: Aachen

Test Mapi

Beitrag von Statler »

Hallo zusammen,

ich habe gerade mal Test Mapi in Betrieb genommen. Hat auf Anhieb funktioniert und arbeitet mit Thunderbird zusammen.

ich habe mir mal den Code angeschaut, also die Klasse und die Include Datei. das ist schon recht komplex.

===================================================
result:= @kernel32:GetCurrentDirectoryW (0,0)

Dieser Syntax eines DLL-Aufrufes wird anscheinend in der Include Datei realisiert. So ganz verstanden habe ich das allerdings nicht :?


nf := nOr(nf,0x1000)

Diese Funktion NOR ist sehr praktisch. Ich habe allerdings nicht herausgefunden, wo sie definiert wurde. Steckt die vieleicht in der Lib drin ?

Gruss

Achim
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Test Mapi

Beitrag von Jan »

Woher kommt das Beispiel?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Statler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Di, 22. Jan 2008 9:49
Wohnort: Aachen

Re: Test Mapi

Beitrag von Statler »

das ist das Testmapi Tool

ot4xb_001_006_004_049.zip
TestMAPI.zip

Copyright (c) 2004 - 2017 Pablo Botella Navarro


mit dem Teil koennen eMails ueber den vorhandenen eMail Client incl. Anhaenge verschickt werden. Den Tipp fuer dieses Tool hatt ich dieses Jahr hier im Forum bekommen und bin aktuell dabei, es zu implementieren.



Gruss
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Test Mapi

Beitrag von Jan »

Da kann ich natürlich lange in den Alaska-Samples suchen. Woher soll ich wissen, daß das ot4xb ist?

Ich nehme also mal an, das die gesuchte NOR-Funktion damit auch in der ot4xb liegt.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Test Mapi

Beitrag von brandelh »

Code: Alles auswählen

result:= @kernel32:GetCurrentDirectoryW (0,0)
für den, der die ot4xb kennt ist das eindeutig die Syntax von Pablo.
OT4XB Anleitung hat geschrieben: Navigation: Reference > Functions By Category > Bitwise >

nOr() Performs a bitwise OR ( | ) operation betwen two or more 32 bit integers.

Syntax: nOr( <nInt1> , ..., <nIntN> )
der Name nOr() ist wohl die Abkürzung der XbToolsIII Funktion NumOr()
in pur Xbase++ sollte bor() das Gleiche sein.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Test Mapi

Beitrag von brandelh »

bor() wie in dem Beispiel kann man verwenden, da ...

nWert := 12345

eine INTEGER Zahl im Speicher erzeugt.
Mit BOR() kann man dann eine Integermaske darüber legen und das Ergebnis wird 0 wenn die Bits falsch ergeben ...

Allerdings wird das meist mit DEFINE Konstanten verglichen ...

nf := nOr(nf,0x1000)

0x1000 => 1000 HEX (die Zahl nach 0FFF)
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Test Mapi

Beitrag von brandelh »

Neuerdings ( so ab der 1.90 wenn ich mich richtig entsinne) geht das auch direkt (Beispiel aus der Hilfe zu []):

Code: Alles auswählen

// This example shows how the index operator can be
// used with values of data type Numeric.

   PROCEDURE Main
      LOCAL n

      ? n := 6                  // result: 6

      ? n[1]                    // result: .F. (bit for 2^0 not set)
      ? n[2]                    // result: .T. (bit for 2^1 is set)
      ? n[3]                    // result: .T. (bit for 2^2 is set)

      n[1] := .T.               // setting bit for 2^0

      ? n                       // result: 7
   RETURN
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Test Mapi

Beitrag von Martin Altmann »

Aber nur bei local-Variablen :!:

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Statler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Di, 22. Jan 2008 9:49
Wohnort: Aachen

Re: Test Mapi

Beitrag von Statler »

Mein Post bezuwglich der Rundungsdifferenzen ist in den falschen thread geraten. Ich kann den vermutlich nicht verschieben ?

gruss
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Test Mapi

Beitrag von brandelh »

wir können ;-)

Ich hab den Beitrag zu den Rundungsfehlern verschoben.

PS: Danke Martin, hatte ich vergessen, da ich eigentlich nur mit Local arbeite
Gruß
Hubert
Statler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Di, 22. Jan 2008 9:49
Wohnort: Aachen

Re: Test Mapi

Beitrag von Statler »

Hallo Brandelh,

ich habe gerade die Anleitung zu ot4xb gefunden und heruntergeladen. Die ist anscheinend nicht Teil des Programm Paketes. Da steht alles drin.

Danke fuer den Hinweis.

Gruss
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Test Mapi

Beitrag von AUGE_OHR »

Statler hat geschrieben: Di, 03. Apr 2018 11:28

Code: Alles auswählen

result:= @kernel32:GetCurrentDirectoryW (0,0)
ja das ist Pablos Syntax.

zunächst kommt @ mit dem DLL Namen also @kernel32
danach kommt dann der API Function Name mit den Parametern

Code: Alles auswählen

:GetCurrentDirectoryW (0,0)
Statler hat geschrieben:

Code: Alles auswählen

nf := nOr(nf,0x1000)
wie Hubert schon sagte ist es das selbe wie bOR() womit man Konstanten "addiert" (getrennt durch Komma)

Code: Alles auswählen

   nStyle := nOr(nStyle, BS_PUSHLIKE,BS_CENTER,BS_VCENTER)
gruss by OHR
Jimmy
Statler
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 108
Registriert: Di, 22. Jan 2008 9:49
Wohnort: Aachen

Re: Test Mapi

Beitrag von Statler »

Hallo zusammen,

dieser oft unnoetige Zugriff auf Systhem-Dll's ist meiner Meinung nach nicht gut. Die meisten Dinge sind in Xbase bereits realisiert, man koennte Sie also einfach nutzen, und hat dann die Garantie, das die Sachen auch, unabhaengig vom Betriebssysthem, funktionieren.

Wenn schon DLl Zugriffe, dann sollte man die auch an zentraler Stelle sammeln und via Funktionsaufruf benutzen. Falls es mal Aerger geben sollte, kann dieser dann ueber einen zentralen Workaround beseitigt werden.

Ansonsten ist die Mapi Toolbox schon klasse und gehoert eigentlich in den Xbase Standart rein. Mails zu verschicken aus der Applikation heraus ist ja heutzutage nicht gerade exotisch. Das lokale eMail Programm zu nutzen ist meiner Meinung nach wesentlich besser als via SMTP-Zugriff zu kommunizieren. Fuer den Anwender ist das zudem transparent, da er sieht, was rausgegangen ist.

Gruss
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Test Mapi

Beitrag von brandelh »

System-APIs sind genau die Teile, die M$ vorgesehen hat ;-)
Die allermeisten Xbase++ Befehle nutzen direkt die System-APIs (intern).

Für andere Zwecke braucht man andere DLLs (Excel Dateien ohne Excel, PDF verwalten etc.),
ob man dann die Syntax von Pablo im Quellcode streut oder lieber eigene Funktionen oder Klassen schreibt (wie ich)
hängt vom Geschmack ab. Pablo nutzt das so wie es unter C üblich ist, ich mag es lieber einfacher :-)

Insoweit stimme ich dir zu ist es für uns besser alles thematisch zu sammeln.
Gruß
Hubert
Antworten