sunxiaowei

Confused in implementing custom symbols!!!!!!! help!!!!

Discussion created by sunxiaowei on Feb 20, 2011
///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.

Outcomes