知识大全 IOPCBrowseServerAddressSpace 的使用(vc)
Posted 知
篇首语:逆水行舟用力撑,一篙松劲退千寻。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 IOPCBrowseServerAddressSpace 的使用(vc)相关的知识,希望对你有一定的参考价值。
IOPCBrowseServerAddressSpace 的使用(vc) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在制作 OPC Client 的时候通常需要浏览OPC Serve的所有已经定义的item名称(当然OPC Server必须支持这个选项) 如果用VC的话就要使用到IOPCBrowseServerAddressSpace接口 那么 下面是提取item目录结构的一个自制的递归函数 void TryBrowseBranch(IOPCBrowseServerAddressSpace *pBSAS LPCWSTR lpprestr LPCWSTR lpcw) HRESULT r ; OPCNAMESPACETYPE onst; LPWSTR pItemID; WCHAR s *lp; IEnumString *pEnum = ; char szBuf[ ]; long nPos = ; HRESULT r = S_OK; LPOLESTR pStr; ULONG actual; lp = WSTRFromSBCS( %ls %ls pIMalloc); // 向lpcw节点的枝叶改变位置 pBSAS >ChangeBrowsePosition(OPC_BROWSE_DOWN lpcw); r = pBSAS >BrowseOPCItemIDs(OPC_FLAT &s VT_EMPTY &pEnum); pBSAS >QueryOrganization(&onst); // 提取该节点下的所有枝叶 while((r = pEnum >Next( &pStr &actual)) == S_OK) printf( %ls%ls %ls\\n lpprestr lpcw pStr); wprintf(lpprestr lp lpcw pStr); if(onst == OPC_BRANCH) TryBrowseBranch(pBSAS lpprestr pStr); // pBSAS >ChangeBrowsePosition(OPC_BROWSE_DOWN // printf( OPC_NS_HIERARCHIAL 含有枝干 ); // get firset item pIMalloc >Free(lp); pIMalloc >Free(pStr); pEnum >Release(); // 回到名叫lpcw的主干位置 pBSAS >ChangeBrowsePosition(OPC_BROWSE_UP lpcw); cha138/Article/program/Java/hx/201311/25685相关参考