Wrapper für DispHpr.DLL
Verfasst: Mo, 07. Nov 2011 5:47
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 ?der @dh: Aufruf ist viel zu kompliziert ... ich hätte lieber eine Function oder Methodangenommen das funktioniert dann kommt als nächsteswie bekomme ich da nun die OOP Syntax "simuliert" ?
klar könnte ich dafür wieder eine Function/Method nehmenaber 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 verbautkönnte man mit "xcommand" vielleicht was zusammenbauen ?
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
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
Code: Alles auswählen
//
// MAPI Schnittstelle
//
#IFDEF USEXPP
oNameSpace := oOutlook:GetNamespace( "MAPI" )
#ELSE
@dh:dhGetValue( L( "%o" ), ;
@oNameSpace , ;
oOutlook , ;
L( ".GetNamespace(%s)" ), "MAPI" )
#ENDIF
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
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>