///1 ILogoMarkerSymbolPtr pLogoMarker = NULL; pLogoMarker.CreateInstance(__uuidof(LogoMarkerSymbol)); //it's a custom marker symbol from the Example below //http://edndoc.esri.com/arcobjects/9.1/Samples/Extending_ArcObjects/Ch05_Display/LogoMarkerSymbol/LogoMarkerSymbol.htm //http://edndoc.esri.com/arcobjects/9.1/extendingarcobjects/ch05/logomarkersymbol.htm ///2 ISimpleMarkerSymbolPtr pSimpleMarkerSymbol = NULL; pSimpleMarkerSymbol.CreateInstance(__uuidof(SimpleMarkerSymbol)); ///3 IStyleGalleryPtr pStyleGallery = NULL; pStyleGallery.CreateInstance("esriFramework.StyleGallery"); IStyleGalleryItemPtr pStyleGalleryItem = NULL; pStyleGalleryItem.CreateInstance("esriFramework.StyleGalleryItem"); IStyleGalleryStoragePtr pStyleGalleryStorage = pStyleGallery; pStyleGalleryStorage->put_TargetFile(L"E:\\My Projects\\NMSYmbol\\NMSymbol\\Bin\\logo.style"); pStyleGalleryItem->put_Category(L"Logo Mark"); pStyleGalleryItem->put_Name(L"Logo Mark"); ///// ///// pStyleGalleryItem->put_Item(pLogoMarker); pStyleGallery->AddItem(pStyleGalleryItem); pStyleGallery->SaveStyle(L"E:\\My Projects\\NMSYmbol\\NMSymbol\\Bin\\logo.style",L"LogoMarker",L"LogoMarkerClass"); //question1 //I run the project I can not find the "pLogoMarker" markersymbol in the stylemanager. //but when i use the "pSimpleMarkerSymbol" instead of "pLogoMarker" and run the project //i can find a simplemarkersymbol(default) in the stylemanager. ///i just want to save my custom marker to a .style file!!!!! /// i dont know why. question2 there are 10 custom meta-graphs(circle,rectangle,truetype font,bezier line ), and i want to compose complex symbols(markersymbol,linesymbol,fillsymbol) wiht some of them. One is to implementing the ISymbol::Draw() to draw the meta-graphs to get markersymbols, then use multilayermarkersymbol,markerlinesymbol,markerfillsymbol to get complex symbols. Is there a far better idea? Any advice would be appreciated.
... View more