Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Bitte hilf mir mal beefy

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ] [ 4 ] [ 5 ]
010
07.05.2003, 10:28 Uhr
Christian
C/C++ Master
(Operator)


Ja, in dieser IID ist ja sogar ein C dabei
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
07.05.2003, 17:14 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


So wie ihr das gesagt habt hatte ich das auch schon probiert aber ich habe die Nummer nie da reinbekommen
und wie kriege ich die Nummer da rein?

so geht das jedenfalls nicht:

IID_ISERIESCOLLECTION.x=0x00020813;
IID_ISERIESCOLLECTION.s1=0x0000;
IID_ISERIESCOLLECTION.s1=0x0000;
IID_ISERIESCOLLECTION.c=0xC000000000000046;

so auch nicht:
const IID IID_ISERIESCOLLECTION = {00020813-0000-0000-C000-000000000046};

und alles mögliche andere funktioniert auch nicht

bitte bitte, könnt ihr das bitte noch mal ganz einfach wie für einen Vorschüler erklären?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
07.05.2003, 18:18 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Ach so fast fergessen, so frisst der das zwar:
const IID IID_ISERIESCOLLECTION = {0x00020813-0x0000-0x0000-0xC000-0x000000000046};

aber wenn ich dann auf die Members zugreifen will schmiert der mir immer mit einem Readerror ab (soll heissen der Compiler nimmts noch).
Ist das gleiche wie als ich das vorher mit dem Cast versucht habe.

Beispiel:

C++:
ISeriesCollection *pscMyCollection;
pXL->ActiveChart->SeriesCollection( _variant_t((long)1) )->QueryInterface(IID_ISERIESCOLLECTION, (void**)&pscMyCollection);
pscMyCollection->Item(_variant_t((long)1))->Interior->Color = _variant_t( (long)RGB(255,0,0) );


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 07.05.2003 um 18:26 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
07.05.2003, 22:03 Uhr
Christian
C/C++ Master
(Operator)


Hi!


C++:
const IID IID_IMessager = {0x00020813,0x0000,0xC000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x46}};



sollte klappen.

Grüße
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
07.05.2003, 22:20 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Hi Christian,
das frisst der Compiler zwar auch aber wenn ich auf members zugreifen will bekommen ich entweder ein readerror oder er faselt was von einem ungültigen Pointer
Ich poste einfach mal den wesentlichen Teil vom Code vielleicht hilft das ja was:


C++:
#import <mso9.dll> no_namespace rename("DocumentProperties", "DocumentPropertiesXL")  
#import "C:\Programme\Gemeinsame Dateien\Microsoft Shared\VBA\VBA6\vbe6ext.olb" no_namespace  
#import <excel9.olb> rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename("DocumentProperties", "DocumentPropertiesXL") no_dual_interfaces

#pragma warning (disable:4192)
#pragma warning (disable:4146)


#include <stdio.h>
#include <tchar.h>

void dump_com_error(_com_error &e)
{
    _tprintf(_T("Oops - hit an error!\n"));
    _tprintf(_T("\a\tCode = %08lx\n"), e.Error());
    _tprintf(_T("\a\tCode meaning = %s\n"), e.ErrorMessage());
    _bstr_t bstrSource(e.Source());
    _bstr_t bstrDescription(e.Description());
    _tprintf(_T("\a\tSource = %s\n"), (LPCTSTR) bstrSource);
    _tprintf(_T("\a\tDescription = %s\n"), (LPCTSTR) bstrDescription);
}


struct StartOle {
    StartOle() { CoInitialize(NULL); }
    ~StartOle() { CoUninitialize(); }
} _inst_StartOle;



void main()
{
    using namespace Excel;

    _ApplicationPtr pXL;
    try {
    
    if (pXL.GetInterfacePtr() == NULL) pXL.CreateInstance(L"Excel.Application.9"); //check ob es schon laeuft
    

    pXL->Visible = VARIANT_FALSE; // oder VARIANT_TRUE wenn man sehen will was der macht
    WorkbooksPtr pBooks;
    _WorkbookPtr pBook;    
    WorksheetsPtr pSheets;
    _WorksheetPtr pSheet;

    pBooks= pXL->Workbooks;
    pBook = pBooks->Add((long)Excel::xlWorksheet);    //vohandenes Dokument mit pBooks->Open("c:\\test.xls"); öffnen
    pSheets = pBook->GetWorksheets();
    pSheet=pBook->ActiveSheet;
    pSheet->Name="Messwerte";

    pXL->Range["Messwerte!B5"]->Value2= 35.6;            
    pXL->Range["Messwerte!B6"]->Value2= 32.7;
    pXL->Range["Messwerte!B7"]->Value2= 33.6;
    pXL->Range["Messwerte!B8"]->Value2= 37.6;
    pXL->Range["Messwerte!B9"]->Value2= 34.6;

    const IID IID_IMessager = {0x00020813,0x0000,0xC000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x46}};
    ISeriesCollection *pscMyCollection;
    pXL->ActiveChart->SeriesCollection( _variant_t((long)1) )->QueryInterface(IID_IMessager, (void**)&pscMyCollection);
    pscMyCollection->Item( _variant_t((long)1)); //egal welchen member ich hier zugreife ich brauche noch nicht mal was zuweisen und bekomme schon einen readfehler oder er faselt was von einem ungueltigen Pointer
    pBook->SaveCopyAs("c:\\test.xls");
    pBook->Close(false);    //damit der die aktuelle nicht speichert
    
    pXL->Quit();
    
    } catch(_com_error &e) {
    dump_com_error(e);

    }
}





--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
07.05.2003, 22:53 Uhr
Christian
C/C++ Master
(Operator)


Hi!

Hast du schonmal den Rückgabewert von dem Queryinterface() ausgewertet? Ok wäre die Konstante S_OK, ansonsten gibt es eben noch E_NOINTERFACE falls das Interface nicht unterstützt wird.

Ich habe jetzt das Beispiel selbst nicht ausprobiert, aber wenn er eben E_NOINTERFACE zurückgibt, dann unterstützt das COM Objekt eben das Interface nicht.

Grüße
--
Grüße, Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
07.05.2003, 23:15 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Hi Christian,
danke für die Antworten

Du hast recht, er returned E_NOINTERFACE;
Was muss ich denn machen damit er das unterstüzt bzw. welches andere muss ich nehmen?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
08.05.2003, 09:55 Uhr
~christian
Gast


Hallo!

Wie gesagt, ich kenne die COM Klasse mit der ProgID "Excel.Application.9" nicht. :-( Excel habe ich auch noch nie automatisiert.

Hab leider wenig Zeit zur Zeit, aber gibt es da keine Codes im Netz? Vielleicht von direkt von MS?

Grüße
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
08.05.2003, 18:25 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


beefy hast du vielleicht noch eine Idee?
Bitte bitte du bist meine letzte Hoffnung.
Ich weiss einfach nicht mehr was ich noch probieren bzw. wo ich noch suchen soll.
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
28.05.2003, 01:06 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Hi beefy,
ich nerv dich noch mal.
Ich habe das jetzt soweit hinbekommen das ich acces auf die members von dem von mir gewünschten SeriesCollection-Object habe.

Nun zu meinem Problem.

Ich muss dem Krempel immer ein Object vom typ _variant_t übergeben.

also pointer->Values = _variant_t(...)

und genau da ist mein Problem.
Der kompiler frisst so ziemlich alles was ich ihm übergebe. aber er schreibt dann nicht das rein was ich haben will.

Ich muss hier irgenwie ein range object in den _variant_t-datentyp reinbekommen. Wie geht das?

Und umgekehrt. Wie kriege ich das aus einem _variant_t-typ wieder raus was drin steht? (also so das ich das interpretieren kann );

Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ] [ 4 ] [ 5 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: