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