Re[2]: Add Class from Typelib - не полностью генерит классы
От: Аноним  
Дата: 21.09.06 08:26
Оценка:
Здравствуйте, algol, Вы писали:

A>Здравствуйте, Aliksen, Вы писали:


A>>подскажите, плз, почему при генерации wrapper-классов какие-то методы могут не генериться?

A>>например у СWorksheet нет метода get_Range и еще многих других?
A>>и как в таком случае доставать этот самый range у Worksheet?

A>Чтобы был get_Range, нужно использовать директиву #import, а не генерировать MFC враппер. В MFC-шной обертке должно быть просто свойство Range.


у меня после визарда получается файл CWorksheet.h в котором уже прописана директива
#import ... Excel.exe

вот что получается — у класса-обертки все методы — через get_ или put_



// Machine generated IDispatch wrapper class(es) created with Add Class from Typelib Wizard

#import "C:\Program Files\Common Files\Microsoft Shared\OFFICE11\MSO.DLL" auto_rename
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"

#import "C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE" no_namespace no_auto_exclude auto_rename \
        rename("Rectangle", "ExcelRectangle") rename("IFont", "IExcelFont") rename("Font", "ExcelFont") \
        rename("IPicture", "IExcelPicture") rename("Arc","ExcelArc") rename("Picture","ExcelPicture")
// CWorksheet wrapper class

class CWorksheet : public COleDispatchDriver
{
public:
    CWorksheet(){}
......
......

   // _QueryTable methods
public:
    LPDISPATCH get_Application()
    {
        LPDISPATCH result;
        InvokeHelper(0x94, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, NULL);
        return result;
    }
    long get_Creator()
    {
        long result;
        InvokeHelper(0x95, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
        return result;
    }

.....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.