CC'ing a few interested parties...

Henry wrote:
i had a look at the schema.
what about table that contains contents and hierarhy tables.


I added a few notes on the O_ITable SQL
table.  Please let me know what parts
need to be extended.

http://www.openconnector.org/SQLSchema.html
http://www.openconnector.org/dox_docs/class_o___i_table.html

i have a question about mapi tables.
when do you update table if an objet is modified.


Immediately.  Didn't do the transaction
changes with tables.  Should tables support
transactions?  Currently O_ITable is hardly
being used because a ITableData clone
object is created off our O_ITable object and
returned to MAPI.

As soon as our SortTable() is working that's
going to change.  We are going to start
returning O_ITableView objects to Outlook. I
expect a lot of things to break and also slow
down.  But then things should go well from that
point since that is the last 'major' part of
the implemented MAPI objects that hasn't been
at least attempted.

and does hierarchy or conntents table contain refs to objects it's buitl from.
That can be usefull for implemeting SetColumns method.


That is why the O_ITableView class was
created...
http://cvs.sourceforge.net/viewcvs.py/otlkcon/otlkcon0/mstore/O_ITableView.cpp?view=markup

MAPI was appearing to be freeing some
of the O_ITables being sent to it,
when I use to pass O_ITables to
Outlook.  This was not good because the
O_ITable's were being shared with other
objects that weren't quite done with
them.  Eg.  Folders sending Outlook
their hierarchy tables, only to have
their own copies freed when Outlook was
done.

I figured the solution was to create a
'view' class that would export the
IMAPITable interface, passing calls that
modify the parent object back to the
parent.  Outlook could do as it pleased
with that O_ITableView object and not
affect the other objects in memory
sharing the O_ITable object.  Does that
design make sense?

As we need to look through all objects if another property to be added.


All our objects serialize changes immediately.
Hence if a property is added every object in
memory sees that change immediately since they
are all running off the same SQL table.  Is
that what you were suggesting?

So table should store in some row a column set. And this column set
will be updated by SetColumns if needed.


That is already being done.  SetColumns() alters
a special row.  I think it's ROWNUM -1.  If you
browse the SQL table directly using an SQLite
browser program eg...

http://www.singular.gr/sqlite
http://sqlitebrowser.sourceforge.net/

You can see the special rows 0 and -1.  I will
continue with adding special information in the
rows with negative index numbers.  Eg. Sort
order and categories in ROWNUM -2 and -3, etc.
in the future.

SetColumns(), basically works, more or less.
the thing is, we are not passing O_ITable
objects to Outlook.  We are currently copying
all the O_ITable rows to ITableData object then
passing *that* to Outlook.  I did this becuase
Outlook wanted to use the SortTable() function
on O_ITable and that was not written yet.

But SortTable() will be done soon.

Please let me know if you need any more info,
the code is very sparsly documented.  That is
something I'd like to fix in the future.

I'd like to start putting some of the pertinent
information done in writing as a documentation
start also.

Regards,
Kervin



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
otlkcon-devel mailing list
otlkcon-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/otlkcon-devel

Reply via email to