bluewood_cn
路人甲
路人甲
  • 注册日期2004-04-19
  • 发帖数118
  • QQ
  • 铜币551枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1566回复:0

如何从serverstyle文件中得到Symbol

楼主#
更多 发布于:2005-09-06 14:12
<P>因工作需要,要从 ArcEngine的 serverStyle里面得到以前保存的Symbol,昨天试验了半天,没有成功,今天到END上找了个Java的例子,按照上面,终于成功了。</P>
<P>在这里严重批评 ESRI公司的帮助文档和函数命名,很多东西都没有写清楚(特别是参数的含义),很容易把人搞糊涂和微软公司的MSDN的帮助比起来,简直就是幼儿园水平!!!!。严重鄙视之。</P>
<P>IStyleGalleryPtr ipStyleGall(CLSID_ServerStyleGallery);<BR>IStyleGalleryStoragePtr ipSGS(ipStyleGall);<BR> <BR>HRESULT hr;<BR>//只用用这种方法才能得到Symbol<BR>ipSGS->AddFile(CComBSTR("C:\\Caves.ServerStyle"));<BR>//本来是想用以下两个方法,可是死活读取不到里面的内容,严重鄙视之<BR>// hr = ipStyleGall->ImportStyle(CComBSTR("C:\\Caves.ServerStyle"));<BR>// hr = ipStyleGall->LoadStyle(CComBSTR("C:\\Caves.ServerStyle"),CComBSTR("Marker Symbols"));</P>
<P>long lCount;<BR>hr = ipStyleGall->get_ClassCount(;lCount);</P>
<P>IStyleGalleryClassPtr ipStyleGallClass;<BR>CComBSTR bstrName;<BR> <BR>for(int i=0 ;i<lCount ;i++)<BR>{<BR> hr = ipStyleGall->get_Class(i,;ipStyleGallClass);<BR> hr =  ipStyleGallClass->get_Name(;bstrName);</P>
<P> IEnumStyleGalleryItemPtr ipEnumStyleGallItem;</P>
<P>//第一个参数是Class名字,第二个参数未搞明白,第三个参数是 category名字</P>
<P>//严重鄙视他的帮助说明,强烈到极点<BR> hr = ipStyleGall->get_Items(bstrName,CComBSTR(""),CComBSTR(""),;ipEnumStyleGallItem);<BR>  <BR> IStyleGalleryItemPtr ipStyleGallItem;<BR> hr = ipEnumStyleGallItem->Next(;ipStyleGallItem);<BR> while (ipStyleGallItem)<BR> {<BR>   IUnknownPtr ipUnknowed;<BR>   ipStyleGallItem->get_Item(;ipUnknowed);<BR>   ISymbolPtr ipSymbol(ipUnknowed);<BR>   <BR>   if(ipSymbol)<BR>  {<BR> ...做你想做的操作<BR>  }<BR> ipEnumStyleGallItem->Next(;ipStyleGallItem);<BR> }<BR>}<BR></P>
喜欢0 评分0
游客

返回顶部