Random notes after testing 2.0.2 and GW 7 by tml: ================================================= These notes are from testing with OOo 2.0.2 built with novell-win32-odma.diff as it was in late March, 2006, and GroupWise 7. * Registry: The ODMA 2.0 documentation says one needs the following stuff in the Registry: HKEY_CLASSES_ROOT\ODMA32.FileTypes\ = "" where is the default value in the HKEY_CLASSES_ROOT\ for the file extension in question. For instance, "opendocument.WriterDocument.1" for the .odt extension, and is the application's AppId as passed to ODMRegisterApp(). This is "sodma" for OOo. (See the #define of ODMA_ODMA_REGNAME in odma_provider.hxx and the call to NODMRegisterApp() in odma_provider.cxx:ContentProvider::getHandle().) HKEY_CLASSES_ROOT\ODMA32.ClientApps\ = "" where both > and are again "sodma". These entries should be added when installing OOo. (Until this gets done automatically by the installer, do it manually.) For some reason, it seems to be enough to have the above for only "opendocument.WriterDocument.1", and the below will still work also for .odp documents, for instance??? * GroupWise After installing GroupWise, go to Tools:Options:Documents:Integrations. Check Enable integrations, select each of the OpenDocument applications and toggle the Enabled button. When GW warns that the application is not registered with GW as an ODMA integrated application, click Yes. Click OK and Close. Leave GW, and launch it again. Have a look at Tools:Options:Documents:Integrations again, and you will notice that the integration enablings didn't seem to "stick"... but but no worry, once you double-click on an OOo document, it launches OOo, and from the title bar you can verify that you are operating on the document from GW: The title bar should say something like: ::ODMA\GRPWISE\EMEA1.EMEA1-DOC.EMEA-General_Use:16344 - OpenOffice.org Writer If it instead just gives a file name like 16344-2.odt, GW doesn't know of the integration . * No registry entries needed at all? Actually, testing a bit more (yay for vmware, makes it trivial to go back to a known clean state repeatedly) indicates that no ODMA32.FileTypes or ODMA32.ClientApps Registry entries at all seem to be necessary. (This was also indicated by the fact that Word integrates very nicely with GW, and doesn't add any such Registry entries.) What you need to do is turn on integration for OpenDocument Text, for instance, in GW, then double-click on some such document in GW. This will make GW notice the integration permanently, also for the other OpenDocument types. Weird... Older stuff by mmeeks: ====================== * Groupwise / ODMA work: ** Final status: + Version mismatch causes grief + OO.o UCP API usage very odd, pwrt 'transfer' (Save) + always uses SaveAs (with NULL name) [ bFolder brokenness ? ] + does OpenDoc / re-save having done the transfer [ most odd ] + Not convinced that we can hook 'Close' properly without more core changes ** Hidden gotchas + Adding a key of name length > 8 chars to ODMA32 registry entry results in silent fatal errors opening ODMA connection. ** Version 1.0: (Groupwise): ODMRegisterApp ODMUnRegisterApp ODMSelectDoc ODMOpenDoc ODMSaveDoc ODMCloseDoc ODMNewDoc ODMSaveAs ODMActivate ODMGetDocInfo ODMSetDocInfo ODMGetDMSInfo ODMGetODMInterface ODMGetLeadMoniker ODMQueryInterface ** OO.o tests (for version 2.0): ODMRegisterApp ODMUnRegisterApp ODMSelectDoc ODMOpenDoc ODMSaveDoc ODMCloseDoc ODMNewDoc ODMSaveAs ODMActivate ODMGetDocInfo ODMSetDocInfo ODMGetDMSInfo ODMGetDMSCount ODMGetDMSList ODMGetDMS ODMSetDMS ODMQueryExecute ODMQueryGetResults ODMQueryClose ODMCloseDocEx ODMSaveAsEx ODMSaveDocEx ODMSelectDocEx ODMQueryCapability ODMSetDocEvent ODMGetAlternateContent ODMSetAlternateContent ODMGetDocRelation ODMSetDocRelation ** Differences * 'OpenFolder' / folder browse functionality: < missing ODMQueryExecute > - used in queryContentProperty < missing ODMQueryGetResults > - used in getResult < missing ODMQueryClose > - used in getResult * Extended versions of things we need: [ for use of the ODM_SILENT flag ] < missing ODMCloseDocEx > - used in closeDocument < missing ODMSaveDocEx > - used for saveDocument < missing ODMSaveAsEx > - used for 'transfer' (save) command < missing ODMGetDMS > - unused < missing ODMGetDMSCount > - unused < missing ODMGetDMSList > - unused < missing ODMSetDMS > - unused < missing ODMQuerySelectDocEx > - unused < missing ODMQueryCapability > - unused < missing ODMSetDocEvent > - unused < missing ODMGetAlternateContent > - unused < missing ODMSetAlternateContent > - unused < missing ODMSetDocRelation > - unused < missing ODMGetDocRelation > - unused [ unused but in GW version ]: ODMGetODMInterface ODMGetLeadMoniker ODMQueryInterface 1. detect ODMA configured & in-use ... + if so, throw up the new dialog + [ never show me this again ] + interact with that dialog 2. creating a dialog + can do that quite easily. --- might work --- + add code to ODMA UCP + + 'create new document' + - detect if ODMA stuff configured correctly - + is there a provider ? + odma::LoadLibrary + wrapper foo - activate ODMA component + if not there -> proxy + else dialog : QueryBox ... --- implement 'createFoo' method --- odma_content.cxx 'insert' + poke here ... .src file