//レイヤ プロパティの説明 ILayerGeneralProperties::LayerDescription ////////////////////////////////////////////////////////////////////// c pLExt = (ILayerExtensions)axMapControl1.get_Layer(0); IServerLayerExtension pSLE; IPropertySet pProps; object names; object values; String CopyrightTextstr = null; for (int l = 0; l <= pLExt.ExtensionCount - 1; l++) { pSLE = pLExt.get_Extension(l) as IServerLayerExtension; pProps = pSLE.ServerProperties; pProps.GetAllProperties(out names, out values); string[] namearray = (string[])names; object[] valuesarray = (object[])values; for (int k = 0; k < namearray.Length; k++) { System.Diagnostics.Debug.Print(namearray[k] + "," + valuesarray[k]); if (namearray[k].Equals("CopyrightText")) { CopyrightTextstr = (String)valuesarray[k]; } } } System.Diagnostics.Debug.Print("Value = " + CopyrightTextstr); //////////////////////////////////////////////////////////////////////
ILayerGeneralProperties::LayerDescription 'レイヤ プロパティの著作権 'http://forums.esri.com/thread.asp?c=93&f=993&t=220817 Option Explicit Sub Test() Dim pMxDoc As IMxDocument Set pMxDoc = ThisDocument Dim pLExt As ILayerExtensions Set pLExt = pMxDoc.FocusMap.Layer(0) Dim l As Long For l = 0 To pLExt.ExtensionCount - 1 If TypeOf pLExt.Extension(l) Is IServerLayerExtension Then Dim pSLE As IServerLayerExtension Set pSLE = pLExt.Extension(l) Dim pProps As IPropertySet Set pProps = pSLE.ServerProperties Dim vNames As Variant, vVals As Variant pProps.GetAllProperties vNames, vVals Dim k As Long For k = 0 To UBound(vNames) If UCase(vNames(k)) = UCase("CopyrightText") Then Debug.Print vVals(k) pProps.SetProperty "CopyrightText", "updated " & Now End If Next k pSLE.ServerProperties = pProps End If Next l End Sub