[gme-users] Passing user data in for events.

Zoltan Molnar zolmol at isis.vanderbilt.edu
Fri Dec 2 17:56:02 CST 2005


I tried in a Raw COM interpreter (not /CLR compiled project), and it
goes on the "Equal branch".

Br,Zoli

STDMETHODIMP RawComponent::InvokeEx( IMgaProject *project,  IMgaFCO
*currentobj,  
	
IMgaFCOs *selectedobjs,  long param) {
	COMTRY {
	  if(interactive) {
		CComBSTR projname;
		CComBSTR focusname = "<nothing>";
		CComPtr<IMgaTerritory> terr;
		COMTHROW(project->CreateTerritory(NULL, &terr));
		COMTHROW(project->BeginTransaction(terr));
		try {
			COMTHROW(project->get_Name(&projname));
			
			CComPtr<IMgaFolder> fld;
			COMTHROW( project->get_RootFolder( &fld));
			if( fld)
			{
				CComBSTR var( L"EXTRADATA");
				CComVariant var2( var);
				//fld->Associate( var2);
				terr->Associate( fld, var2);

				CComVariant extr_var2;
				fld->get_CurrentAssociation(
&extr_var2);
				CComBSTR extr_var;
				extr_var2.CopyTo( &extr_var);

				if( extr_var && extr_var.Length() ==
var.Length() && extr_var.operator ==( var))
				{
					int i = 0;
					++i;
					AfxMessageBox( "Equal, so it is
working");
				}
				else
					AfxMessageBox( "Not equal. It is
NOT working !!!");
			}
			COMTHROW(project->CommitTransaction());
		}	catch(...) { project->AbortTransaction(); throw;
}
		
	  } 
	} COMCATCH(;);
}

> -----Original Message-----
> From: gme-users-bounces at list.isis.vanderbilt.edu 
> [mailto:gme-users-bounces at list.isis.vanderbilt.edu] On Behalf 
> Of Daniel Waddington
> Sent: Friday, December 02, 2005 2:39 PM
> To: gme-users
> Subject: Re: [gme-users] Passing user data in for events.
> 
> 
> Zoli,
> 
> I did try this and VARIANT v is still empty - do I need to do 
> something else 
> to get hold of it?
> 
> Thanks,
> Daniel.
> 
> Zoltan Molnar wrote:
> > Please try to use
> > 
> > gme.RootFolder.Associate( filename);
> > 
> > Instead of
> > 
> > 
> >>terr.Associate((MGALib.MgaObject)gme.RootFolder,filename);
> > 
> > 
> > Br, Zoli
> > 
> > 
> >>-----Original Message-----
> >>From: gme-users-bounces at list.isis.vanderbilt.edu
> >>[mailto:gme-users-bounces at list.isis.vanderbilt.edu] On Behalf 
> >>Of Daniel Waddington
> >>Sent: Friday, December 02, 2005 2:10 PM
> >>To: gme-users
> >>Subject: [gme-users] Passing user data in for events.
> >>
> >>
> >>Hi,
> >>
> >>I am using  a .NET object to trigger an event on a Root
> >>Folder object  
> >>through the IMgaProject interface. But I can't seem to get the  
> >>VARIANT param filled in on the AddOn side (which is handling 
> >>the event).
> >>
> >>this is what I do...
> >>
> >>gme.BeginTransaction
> >>(terr,MGALib.transactiontype_enum,.TRANSACTION_GENERAL);
> >>gme.CreateTerritory(null, out terr, null);
> >>
> >>string userdata = "hello";
> >>terr.Associate((MGALib.MgaObject)gme.RootFolder,filename);
> >>
> >>gme.RootFolder.SendEvent(0x00010000);
> >>gme.CommitTransaction();
> >>
> >>But on the other side the variant is empty. What am I do wrong?
> >>
> >>Thanks,
> >>Daniel.
> >>
> _______________________________________________
> gme-users mailing list
> gme-users at list.isis.vanderbilt.edu
> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
> 


More information about the gme-users mailing list