AnnEnumerate example for C++ Builder
Note: |
This topic is for Document/Medical only. |
//Global declarations
LEADRasterAnnotation * pRasterAnn= NULL;
LEADRasterAnnToolBar* pRasterAnnToolbar= NULL;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
CoCreateInstance(CLSID_LEADRasterAnnotation, NULL, CLSCTX_ALL, IID_ILEADRasterAnnotation, (void**)&pRasterAnn);
CoCreateInstance(CLSID_LEADRasterAnnToolBar, NULL, CLSCTX_ALL, IID_ILEADRasterAnnToolBar, (void**)&pRasterAnnToolbar);
pRasterAnn->AnnParentRasterView = LEADRasterView1->Raster;
LEADEventSink1->Connect (pRasterAnn, DIID__LEADRasterAnnotationEvents);
pRasterAnn->AnnUserMode = ANN_USERMODE_DESIGN ;
}
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
if (pRasterAnn)
pRasterAnn->Release ();
if (pRasterAnnToolbar)
pRasterAnnToolbar-> Release();
}
//This example causes the AnnEnumerate event to get fired for all annotations in the //container.
void __fastcall TForm1::Button2Click(TObject *Sender)
{
pRasterAnn->AnnEnumerate (pRasterAnn->AnnContainer, ANN_FLAG_RECURSE + ANN_FLAG_NOTTHIS, AnsiToOLESTR(""));
}
void __fastcall TForm1:: LEADEventSink1Invoke(TObject *Sender, int DispID,
const TGUID &IID, int LocaleID, WORD Flags, tagDISPPARAMS &Params,
Pointer varResult, Pointer ExcepInfo, Pointer ArgErr)
{
int hObject;
AnsiString Msg;
switch (DispID)
{
case LEADRASTERANNOTATIONEVENTS_ANNENUMERATE:
{
hObject= (OleVariant)(Params.rgvarg[0]);
sprintf( Msg.c_str(),"Annotation Handle: %x", hObject);
ShowMessage (Msg.c_str());
}
break;
}
}