001
06.05.2003, 16:34 Uhr
~0xdeadbeef
Gast
|
IDispatch hat das tatsächlich nicht, SeriesCollection schon. Du hast ein Objekt im Speicher, das die von dir geforderte Membervariable sogar hat, aber du greifst darauf über ein Interface zu, dass das nicht weiß.
Die sinnvollste Möglichkeit ist wohl, sich ein vernünftiges Interface zu holen, das vermutlich ISeriesCollection oder so ähnlich heißt. Durchsuch mal die MSDN danach. Dann musst du dir über IUnknown::QueryInterface (IDispatch ist von IUnknown abgeleitet) das vernünftige Interace holen und damit weiterarbeiten. Das sieht dann etwa so aus:
C++: |
ISeriesCollection *pscMyCollection
pXL->ActiveChart->SeriesCollection(_variant_t((long l))->QueryInterface(IID_SERIESCOLLECTION, &pscMyCollection); pscMyCollection-> //hier Member ansprechen
|
Der Code wird so vermutlich nicht kompilieren, du mußt noch die Header-Datei finden, in der das Interface spezifiziert ist. Außerdem kann es gut sein, dass das Interface ISeriesCollection und die Konstante IID_SERIESCOLLECTION etwas anders heißen, aber mehr kann ich im Moment nicht tun. So sollte es im Prinzip laufen.
URLs, die dazu spannend sein könnten:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/automat/htm/chap5_78v9.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/htm/cmi_q2z_7fvp.asp
Ich hoffe, das hilft dir zumindest ein bisschen... |