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

Daniel Waddington dwadding at atl.lmco.com
Mon Dec 5 09:05:54 CST 2005


Hi Zoli,

I check the variant at the client side before SendEvent by checking  
CurrentAssociation; it seems to set up fine.  On the receiver (GME)  
side, the object raising the event in objectEventPerformed is  
definitely the "Root Folder" object, but VARIANT v is always empty.   
I checked the associated value with f->getFolderI()- 
 >get_CurrentAssociation(&var), but this is also empty.

Any ideas how I can proceed? I wonder if it is some .NET COM wrapper  
thing that is screwing something up??

Thanks,
Daniel.

On Dec 2, 2005, at 6:56 PM, Zoltan Molnar wrote:

> 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
>>
> _______________________________________________
> gme-users mailing list
> gme-users at list.isis.vanderbilt.edu
> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users

===============================
  Dr. Daniel G. Waddington
  Lockheed Martin ATL
  3 Executive Campus, 6th Floor
  Cherry Hill, NJ 08002
  Tel:856 792 9740
===============================






More information about the gme-users mailing list