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\<FileType> = "<AppSubkey>"

where <FileType> is the default value in the HKEY_CLASSES_ROOT\<ext>
for the file extension in question. For instance,
"opendocument.WriterDocument.1" for the .odt extension, and <AppSubkey>
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\<AppSubkey> = "<AppId>"

where both <AppSubkey>> and <AppId> 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
