Wrapper für DispHpr.DLL

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

Antworten
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

Wrapper für DispHpr.DLL

Beitrag von AUGE_OHR »

hi,

wer mit Xbase++ activeX arbeitet hat evtl. Geschwindigkeits- Probleme.
eine Möglichkeit bietet da DispHpr.DLL aber man müsste dazu seinen Source Code umschreiben.

nur wäre es nicht das Problem wenn dadurch die OOP Syntax nicht "wegfallen" würde,
denn die "Rückgabe Werte" sind keine Objecte sondern "numerisch" ( Pointer )

ich frage mich wie man eine Class schreibet wo man "Pointer verwaltet",
"dynamisch" Objecte erzeugt (im o:Cargo könnte der Pointer stehen ) und
diese per OOP Syntax angesprochen werden können ?

Code: Alles auswählen

#IFDEF USEXPP
   oOutlook := CreateObject( "Outlook.Application" )
#ELSE
   @dh:dhCreateObject( L( "Outlook.Application" ), 0, @oOutlook )
#ENDIF
der @dh: Aufruf ist viel zu kompliziert ... ich hätte lieber eine Function oder Method

Code: Alles auswählen

FUNCTION My_CreateObject( ProgID )
LOCAL nOutlook := 0
LOCAL oOutlook
...
   @dh:dhCreateObject( L( ProgID ), 0, @nOutlook )

   oOutlook := My_Class():New()
   oOutlook:Cargo := nOutlook
   
RETURN oOutlook
angenommen das funktioniert dann kommt als nächstes

Code: Alles auswählen

   //
   // MAPI Schnittstelle
   //
#IFDEF USEXPP
   oNameSpace := oOutlook:GetNamespace( "MAPI" )
#ELSE
   @dh:dhGetValue( L( "%o" ), ;
           @oNameSpace      , ;
           oOutlook         , ;
           L( ".GetNamespace(%s)" ), "MAPI" ) 
#ENDIF
wie bekomme ich da nun die OOP Syntax "simuliert" ?

klar könnte ich dafür wieder eine Function/Method nehmen

Code: Alles auswählen

FUNCTION My_Method(cMethode,xParameter)
...
   Object := My_Class():New()
...
RETURN Object
aber das wäre ja dann keine OOP Syntax.

also müsste in My_Class() eine "universal" Methode her ...
die müsste dann einen Codeblock evaluieren ...

aber wie bekomme ich aus oOutlook:GetNamespace()
die Methode "GetNamespace()" so "umgewandelt"
das ich damit Parameter für einen Codeblock bekomme ?

ich habe mal irgendwo sowas verbaut

Code: Alles auswählen

#xcommand METHOD <!ClassName!>:<MethodName> => METHOD <MethodName> CLASS <ClassName>
könnte man mit "xcommand" vielleicht was zusammenbauen ?
gruss by OHR
Jimmy
Antworten