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>