Re[6]: C клиент with ActiveX control
От: Vasilich2000  
Дата: 25.06.08 22:43
Оценка:
Здравствуйте, Vi2, Вы писали:

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


V>>как сделать это "некоторые инициализирующие манипуляции с его интерфейсами"

V>>ну хотя бы на функции которые надо использовать для инициализации.

Vi2>Ты же сам написал, что "Если вставить этот ActiveX в диалог, то все работает". Вот и смотри, как там осуществляется инициализация контрола. Я тебе ответил, в чем зарыта собака.


создается класс с помощью визарда

class CAcquisition : public CWnd{
protected:
    DECLARE_DYNCREATE(CAcquisition)
public:
    CLSID const& GetClsid()
    {
        static CLSID const clsid
            = { 0x7adcdc5e, 0xd0b6, 0x11d1, { 0xaa, 0x76, 0x0, 0x20, 0x78, 0x13, 0x69, 0x98 } };
        return clsid;
    }
    virtual BOOL Create(LPCTSTR lpszClassName,
        LPCTSTR lpszWindowName, DWORD dwStyle,
        const RECT& rect,
        CWnd* pParentWnd, UINT nID,
        CCreateContext* pContext = NULL)
    { return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }
...
    long CheckDiskSpace(LPCTSTR SequencePathName, long* BytesSpaceFree, short RowToCheck);
...


long CAcquisition::CheckDiskSpace(LPCTSTR SequencePathName, long* BytesSpaceFree, short RowToCheck)
{
    long result;
    static BYTE parms[] =
        VTS_BSTR VTS_PI4 VTS_I2;
    InvokeHelper(0x7, DISPATCH_METHOD, VT_I4, (void*)&result, parms,
        SequencePathName, BytesSpaceFree, RowToCheck);
    return result;
}


в диалоговом классе
          //header
    CAcquisition    m_OCX;
          //c++
    DDX_Control(pDX, IDC_ACQUISITIONCTRL1, m_OCX);
          ...
    long Space;
    SCODE Result = m_OCX.CheckDiskSpace(m_SequenceName,  &Space, m_StartRow);


и где здесь инициализация дополнительная?
единственное что-то хоть как-то подходящее, так это это в свойствах ACQUISITIONCTRL1 есть свойство Disabled = false

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