events - C# (outlook add-in) context menu on folders -


in vsto outlook addin i'm trying put button show when right click on folder. in startup function have this:

outlook.application myapp = new outlook.applicationclass(); myapp.foldercontextmenudisplay += new applicationevents_11_foldercontextmenudisplayeventhandler(myapp_foldercontextmenudisplay); 

then have handler that...

void myapp_foldercontextmenudisplay(commandbar commandbar, mapifolder folder) {     var contextbutton = commandbar.controls.add(msocontroltype.msocontrolbutton, missing, missing, missing, true) commandbarbutton;     contextbutton.visible = true;     contextbutton.caption = "some caption...";     contextbutton.click += new _commandbarbuttonevents_clickeventhandler(contextbutton_click); } 

and handler click....

void contextbutton_click(commandbarbutton ctrl, ref bool canceldefault) {     //stuff here } 

my question how send mapifolder folder myapp_foldercontextmenudisplay contextbutton_click ?

(if can done way, i'm open suggestions too)

easiest way use closure, example:

// folder local variable in scope, such code in post contextbutton.click += (commandbarbutton ctrl, ref bool cancel) => {    doreallstuff(ctrl, folder, ref cancel); }; 

make sure clean event, if required. 1 thing watch out rcw folder may have "extended lifetime" closure may keep alive longer before (but oom is very important manually release rcws when not needed.)

happy coding.


Comments