Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: COM/DCOM/ActiveX/ATL/CORBA > в vb использовать методы COM SimpleObject


Автор: hash_2000 8.6.2009, 14:09
Всем привет!
у меня такой вопрос:
создал я в СОМ такой вот SimpleObject:

Код

class ATL_NO_VTABLE CFileData : 
    public CComObjectRootEx<CComSingleThreadModel>,
    public CComCoClass<CFileData, &CLSID_FileData>,
    public IDispatchImpl<IFileData, &IID_IFileData, &LIBID_hVirtualDataLib, /*wMajor =*/ 1, /*wMinor =*/ 0>

....


interface IFileData : IDispatch
{
        .....
    [id(1), helpstring("method AttachToFile")] HRESULT AttachToFile([in] LPOLESTR FileName);
       ......




и пытаюсь вызвать этот метод в vb 

Код


Private Sub Form_Load()

    Dim n As Variant
    Set n = CreateObject("hData.FileData.1")
    
    n.AttachToFile ("E:\1.jpg")

End Sub




а он , в строке  n.AttachToFile ("E:\1.jpg") выкидывает ошибку :
Run-time error '458'
variable uses an Automation type not supported in Visual Basic

что нужно Visual Basic'ку чтобы Automation стала supported ? smile ... или он только объекты с графическим интерфейсом воспринимает ?



Автор: xvr 8.6.2009, 17:20
Угу, LPOLESTR может быть вполне 'not supported', и не только в VB  smile 
Используй BSTR

Автор: hash_2000 9.6.2009, 06:33
Да ... точно ... спасибо !  smile  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)