佚名通过本文主要向大家介绍了
请教高手,cominterface中的method可以用结构作为参数吗?等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 请教高手,com interface 中的 method 可以用结构作为参数吗?
描述:
解决方案1:
描述:
请教高手,创建简单com对象,interface 中可以包含结构吗?我的意思client和server通信,不用结构,只用简单参数,势必接口函数写得冗长复杂。
我创建一个简单的com server,再type library editor 中可以添加一个record (相当于struct),接口中的method 可以用这个struct作为参数。但根据试验,简单参数(int,long,BSTR)的调用是正常的,而含有struct的method,调用不正常,根本不调用。为什么???
是BCB的问题?windows的shell interface 不是到处都是结构吗?还是如果自定义结构的话,必须自定义列集(Marshaling)?
解决方案1:
对于进程内的对象(dll)不用考虑Marshaling
直接把结构定义写到idl文件里去
interface IMyObj : IUnknown
{
typedef struct ...
{
} MY_STRUCT;
HRESULT foo([in] MY_STRUCT* pData);
};
可以用结构,不需要自己自定义列集.
另外,你的接口是不是继承于IDispatch,如果是的话,一般需要用到SAFEARRAY;
如果直接继承于IUnknown可以传自己的结构的.
您可能想查找下面的文章:
- 请教高手:在COM中接口方法需传一个struct数组,要求支持自动化,请问该如何传递?
- 请教高手,怎样激活ActiveX进入“运行模式”
- 请教高手:html网页里调用COM组件的时候,组件里的方法是不是只能有一个输入值和一个输出值。
- 请教高手:向RichEdit控件发送SET_TEXT消息往里写内容的问题!有的能写进去内容,有的却写不进去?
- 请教高手:《COM本质论》中的“实现”概念的理解
- 请教高手:在MFC中如何防止ado连接自动断开假设没有任何异常情况出现,我现在的程序中一般超过1个半小时,ado就自己断开了
- 请教高手:可不可以当EXE的COM服务器里发生了一个事件时,通知所有连接该组件的客户端?
- 请教高手一个问题,新手初学。
- 请教高手,cominterface中的method可以用结构作为参数吗?
- 请教高手我想做象网络蚂蚁那样在ie里点击右键出来个菜单在注册表的那个键里设置