ArcObjects には IClone というインタフェースがあり、これを実装しているクラスは IClone::Clone() メソッドによってオブジェクトの複製が行えます。しかし、TOC でレイヤをコピー&貼り付けのように、レイヤの複製を行いたい場合は、レイヤー クラスに IClone 実装されていないためが使えません。
その代わりに使用するのが IObjectCopy インタフェース。これは ObjectCopy クラスをインスタンス化して IObjectCopy::Copy()メ ソッドによってオブジェクトの複製を行います。
オブジェクトのコピーなので、FeatureLayer だとシンボルとか選択状態、フィルタ設定などの情報もすべてコピーされます。
ヘルプを読むと IPersistStream インタフェースを実装しているクラスに適用できるようです。基本的に CoClass と考えれば良いです。
サンプルコード
Public Sub CopyLayer() 'マップ ドキュメントを取得 Dim pMxDocument As IMxDocument Set pMxDocument = ThisDocument 'マップを取得 Dim pMap As IMap Set pMap = pMxDocument.FocusMap 'コピー元レイヤを取得 Dim pLayer As ILayer Set pLayer = pMap.Layer(0) 'ObjectCopyの作成 Dim pObjectCopy As IObjectCopy Set pObjectCopy = New ObjectCopy 'コピーレイヤを作成 Dim pNewLayer As ILayer Set pNewLayer = pObjectCopy.Copy(pLayer) 'コピーしたレイヤをマップに追加 pMap.AddLayer pNewLayer End Sub
参考
http://forums.esri.com/Thread.asp?c=93&f=1170&t=259909#798335