Seite 1 von 1

:DynamicCast() und :UseMarshalling

Verfasst: Mo, 13. Apr 2009 2:30
von AUGE_OHR
hi,
in C:\Alaska\XPPW32\source\SYS\activex.prg steht

Code: Alles auswählen

CLASS ImageList FROM AutomationObject
...
CLASS METHOD ImageList:Create( oOwner, cCLSID, cIID, cLicense )
LOCAL oReturn 
   DEFAULT cCLSID   TO IMGLISTCTRL_PROGID
   DEFAULT cIID     TO IMGLIST_IID
   DEFAULT cLicense TO MSCOMCTRL_LICENSE

   oReturn := AutomationObject():Create( cCLSID,, cLicense )
   IF ValType(oReturn) == "O" 
      oReturn := oReturn:QueryInterface( cIID )
      oReturn := oReturn:DynamicCast( ImageList() )
      oReturn:Owner := oOwner
      oReturn:CLSID := cCLSID
      oReturn:UseMarshalling := .F.
   ENDIF
RETURN oReturn
Das AutomationObject():Create() verstehe ich ja noch, aber wozu dann noch der "Rest" ?
oReturn := oReturn:QueryInterface( cIID )
die cIID steht für IImageList welche man in der Registry unter
HKEY_CLASSES_ROOT\Interface\{2C247F21-8591-11D1-B16A-00C0F0283628} findet.
oReturn := oReturn:DynamicCast( ImageList() )
Die ImageList() ist doch die Class, oder ? wenn nun oReturn ein IImageList Object(?) ist, füge ich dann mit oReturn:DynamicCast()
dem IImageList Object activeX Eigenschaften zu ?

und was ist :UseMarshalling ?

Re: :DynamicCast() und :UseMarshalling

Verfasst: Mo, 13. Apr 2009 11:19
von Tom
Hallo, Jimmy.

Was Marshalling ist, wird hier:

http://de.wikipedia.org/wiki/Marshalling

erläutert, aber was es für uns bedeutet - keine Ahnung. :?: