ArcGIS Engineはレイヤ ファイル(.lyr)を作成できません。なので数値分類などの凡例情報をファイルとして保存するには、マップ ドキュメント(.mxd)を作るしかありません。
と思ったらありましたIPersistStream。あらゆるArcGISのオブジェクトをバイナリファイルで格納できる優れもの。IPersistStreamを持ってるクラスならすべてバイナリ形式で保存できます。
ヘルプによるとIPersistStreamはMicrosoftが提供しているインタフェースだそうだ。
これならArcGIS Engineでシンボルの保存・読み込みもばっちりです。
バイナリ型でClassBreaksRendererを保存
Dim pMemoryBlobStream As IMemoryBlobStream Set pMemoryBlobStream = New MemoryBlobStream Dim pObjectStream As IObjectStream Set pObjectStream = New ObjectStream Set pObjectStream.Stream = pMemoryBlobStream Dim pPersistStream As IPersistStream Dim pPropertySet As IPropertySet Set pPropertySet = New PropertySet pPropertySet.SetProperty "ClassBreaksRenderer", pClassBreaksRenderer Set pPersistStream = pPropertySet pPersistStream.Save pObjectStream, False pMemoryBlobStream.SaveToFile “C:\Temp\MyFile.blb”
ファイルからClassBreaksRendererを読み込み
Dim pObjectStream As IObjectStream Set pObjectStream = New ObjectStream Dim pMemoryBlobStream As IMemoryBlobStream Set pMemoryBlobStream = New MemoryBlobStream pMemoryBlobStream.LoadFromFile "C:\Temp\MyFile.blb" Dim pFeatureClassName As IFeatureClassName Dim pPropertySet As IPropertySet Set pPropertySet = New PropertySet Dim pPersistStream As IPersistStream Set pPersistStream = pPropertySet Set pObjectStream.Stream = pMemoryBlobStream pPersistStream.Load pObjectStream& Set pFeatureClassName = pPropertySet.GetProperty("ClassBreaksRenderer")
■出典 ArcGIS Developer Help Online
IPersistStream Interface http://edndoc.esri.com/arcobjects/9.1/default.asp?url=/arcobjects/9.1/ComponentHelp/esriSystem/IPersistStream.htm
ObjectStream CoClass http://edndoc.esri.com/arcobjects/9.1/default.asp?url=/arcobjects/9.1/ComponentHelp/esriSystem/ObjectStream.htm