Sunday 15 May 2011

c++ - ROT registration does not work with adobe 11 installed -



c++ - ROT registration does not work with adobe 11 installed -

i have code we've been using years pdfs, html docs, , xbrl docs. code called either bho in ie, or adobe plugin in reader. registers moniker in rot, , creates signalling event.

we've been trying upgrade adobe 9 adobe 11, , debugging code, fails register moniker in rot. works if called adobe 9 plugin, , if called bho. upgrading adobe 11 plenty create start silently failing.

the code in question below:

void clocatorregistration::register( isourcelocator* plocator, long nkeyfile ) { hresult hr; ccomptr<irunningobjecttable> prot; ccomptr<imoniker> pmk; ccombstr bstrname; // access rot prot = getrot(); // create moniker pmk = createmoniker( nkeyfile ); // set object in rot. _asserte( !m_bregistered ); ->>hr = prot->register( rotflags_registrationkeepsalive, plocator, pmk, &m_dwrotcookie ); if failed(hr) throw hr; m_bregistered = true; // create event , signal it, back upwards notification callers object // available connect createeventname( nkeyfile, bstrname ); m_hevent.attach( ::createevent( null, true, false, bstrname )); ::setevent( m_hevent ); }

the highlighted line rot registration, , homecoming s_ok. have thought why method succeed, entry not placed rot?

the problem found in researching fact adobe 11 includes new sandboxed protected mode setting. when developing plugin, no longer default has access os.

for our purposes quite simple disable setting, internal application. there lot of other ways accomplish this, didn't them because of time constraints.

c++ com adobe

No comments:

Post a Comment