Re: eucom help
- Posted by Tone Škoda <tskoda at email.si> Sep 22, 2005
- 478 views
Matt Lewis wrote: > > Although qedit.dll exposes the usual information that you'd expect to use > with IDispatch (invoke), it doesn't appear to actually have an IDispatch > interface exposed. Comment out this line in your wrapper: > }}} <eucode> > --MediaDet_disp = add_iid( MediaDet_clsid_ix, IDispatch) > </eucode> {{{ > and use the vtable directly (via com_interface() calls) and it should > work. thanks for your reply. when you wrote "use the vtable directly (via com_interface() calls)" you meant call_interface() and call_interface_ptr()? all these tries give me: c:\euphoria\include\fptr.e:82 in procedure call_stdcall_proc() A machine-level exception occurred during execution of this statement try 1: Det = create_com_object (MediaDet_clsid_ix) detThis = get_obj_this (Det) detVtbl = peek4u (detThis) bstr = alloc_bstr (video_fname) ? call_interface_ptr( detThis, detVtbl, MediaDet_p_Filename, {bstr}) try 2: Det = create_com_object (MediaDet_clsid_ix) bstr = alloc_bstr (video_fname) ok = call_interface( Det, IUnknown, MediaDet_p_Filename, {bstr} ) try 3: Det = create_com_object (MediaDet_clsid_ix) duh = query_interface( Det, IUnknown ) if duh[1] = S_OK then iocs = duh[2] bstr = alloc_bstr (video_fname) ok = call_interface_ptr( iocs, peek4u(iocs), MediaDet_p_Filename, {bstr}) if ok != S_OK then ?1/0 end if else ?1/0 end if