求助:关于IOPCBrowseServerAddressSpacer的几个问题,急~~~~ 点击:660 | 回复:1



青菜鱼

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 1回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2006年7月17日
发表于:2006-07-17 17:08:00
楼主
我最近才开始做opc,遇到几个问题问问大侠:
下面是我opc server代码中的一段:
STDMETHODIMP IXXXBSAS::QueryOrganization( 
    /* [out] */ OPCNAMESPACETYPE  *pNameSpaceType)
{
if(!pNameSpaceType) return E_INVALIDARG;
*pNameSpaceType = OPC_NS_HIERARCHIAL;//OPC_NS_FLAT;//
return S_OK;
}


        
///////////////////////////////////////
// IXXXBSAS::
///////////////////////////////////////
STDMETHODIMP IXXXBSAS::ChangeBrowsePosition( 
    /* [in] */ OPCBROWSEDIRECTION dwBrowseDirection,
    /* [string][in] */ LPCWSTR szString)
{
//这里应该怎么做?
//char p[100] = {0};
//wcstombs(p,szString,100);
return E_FAIL;//S_OK;//
}
我要使客户端连接后的加入items显示的是分等级结构,changebrowseposition()函数应该怎么处理,还有其它几个关联函数(如STDMETHODIMP IXXXBSAS::BrowseOPCItemIDs(),IXXXBSAS::QueryOrganization等)应该怎么写,函数大概要完成哪些工作?有哪位大虾能帮帮我,有示例源码最好 :(
我的QQ是:52162454
e_mail:lqykszcy@163.com



青菜鱼

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 1回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2006年7月17日
发表于:2006-07-19 11:09:00
1楼
问题我经过一天的整理,已经解决了,下面说明一下思路(为公司做的东西,源代码不便公开):

在IOPCBrowseServerAddressSpacer::BrowseOPCItemIDs中new一个IEnumString分组时,把OPCBROWSETYPE类型传过去,在IEnumString::Next时根据OPCBROWSETYPE类型的开始来读取对应的数据,当然QueryOrganization和ChangeBrowsePosition也应该视你所建的等级结构(因人而异)修改.

热门招聘
相关主题

官方公众号

智造工程师