home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / sdk / mapi / win16 / dev / mdbview / readme.txt < prev    next >
Encoding:
Text File  |  1995-07-11  |  8.4 KB  |  205 lines

  1. README.TXT for MDB viewer
  2.  
  3. This file describes what the MDB viewer is, how to build
  4. the MDB viewer, what it does, and how to use it.
  5. MDB stands for Message Data Base. The terms
  6. MDB, Message Data Base, Store, and Message Store all mean the 
  7. same thing.
  8.  
  9. *********** What is the MDB Viewer ? *********************
  10.  
  11. The MDB Viewer is a MFC windows application that allows 
  12. viewing and interactive testing of any MAPI 1.0 compliant message
  13. store.  It allows viewing of properties of message store objects,
  14. table values, folder heirarchies, and messages/attachments contained
  15. in these folders.  It also allows interactive testing of many of the
  16. message store object, folder object, message object, and attachment 
  17. object functions available to all MAPI 1.0 message stores.
  18.  
  19. The MDB viewer is not the primary method of testing being done at Microsoft
  20. for the MAPI 1.0 product, but serves as a tool for interactive testing, 
  21. and complements the existing testing methods and tools.
  22.  
  23.  
  24. *********** How do you build the MDB viewer ? ************
  25.  
  26. What we want to do is build the table viewer dll first, and 
  27. then the mdb viewer exe.  
  28. The 16 bit table viewer dll is called tblvu.dll
  29. The 32 bit table viewer dll is called tblvu32.dll
  30. The 16 bit mdb viewer exe is called mdbvu.exe
  31. The 32 bit mdb viewer exe is called mdbvu32.exe         
  32.           
  33. To build 32 bit debug MDB viewer:
  34.  
  35. 1.  $(MAPI)\samples\src\tablevu\nmake clean               // this cleans up directory of old
  36.                                                           //   build's object files etc.
  37. 2.  $(MAPI)\samples\src\tablevu\nmake                     // this builds table viewer DLL  
  38.                                                           //  tblvu32.dll to link with the MDB viewer
  39. 3.  $(MAPI)\samples\src\mdbview\nmake clean               // this cleans up directory of old
  40.                                                           //   build's object files etc.
  41. 4.  $(MAPI)\samples\src\mdbview\nmake                     // this builds mdbvu32.exe
  42.                           
  43. To build 16 bit debug MDB viewer:
  44.  
  45. 1.  $(MAPI)\samples\src\tablevu\nmake clean               // this cleans up directory of old
  46.                                                           //   build's object files etc.
  47. 2.  $(MAPI)\samples\src\tablevu\nmake PRODUCT=WIN16DLLMFC // this builds table viewer DLL  
  48.                                                           // tblvu.dll to link with the MDB viewer
  49. 3.  $(MAPI)\samples\src\mdbview\nmake clean               // this cleans up directory of old
  50.                                                           //   build's object files etc.
  51. 4.  $(MAPI)\samples\src\mdbview\nmake PRODUCT=WIN16EXE    // this builds mdbvu.exe
  52.  
  53. To build 32 bit ship MDB viewer:
  54.  
  55. 1.  $(MAPI)\samples\src\tablevu\nmake clean               
  56.  
  57. 2.  $(MAPI)\samples\src\tablevu\nmake VERSION=SHIP
  58.                                                         
  59. 3.  $(MAPI)\samples\src\mdbview\nmake clean             
  60.                                                         
  61. 4.  $(MAPI)\samples\src\mdbview\nmake VERSION=SHIP      
  62.  
  63. To build 16 bit ship MDB viewer:
  64.  
  65. 1.  $(MAPI)\samples\src\tablevu\nmake clean                                                                     
  66.  
  67. 2.  $(MAPI)\samples\src\tablevu\nmake PRODUCT=WIN16DLLMFC VERSION=SHIP
  68.                                                           
  69. 3.  $(MAPI)\samples\src\mdbview\nmake clean             
  70.                                                         
  71. 4.  $(MAPI)\samples\src\mdbview\nmake PRODUCT=WIN16EXE VERSION=SHIP   
  72.  
  73.  
  74. *********** What functionality does the MDB viewer have ? ************
  75.  
  76. ****** The message store viewer can view properties of the following Message 
  77. store objects:
  78.  
  79. Folders
  80. Messages
  81. Attachments
  82.  
  83. ****** Each dialog shows what logically exists underneath/within its object.
  84. Ex. A folder shows subfolders and messages within the current folder
  85. and a message shows attachments and recipients
  86.  
  87. ****** You can view properties as you choose(HEX, DECIMAL, or STRING format
  88. for PropTags, and with/without IDS/TAGS/DATA) based upon checkboxes and radio
  89. buttons for property display
  90.  
  91. ****** Furthermore it can view table interfaces and do all table operations on 
  92. all the following table interfaces in MAPI 1.0 message stores:
  93.  
  94. Recipient Tables        (recipients in message)
  95. Attachment Tables       (attachments in message)
  96. Status Tables           (status of MAPI and Spooler)
  97. Message Stores Table    (message stores in MAPI)
  98. Contents Tables         (messages in folder)
  99. Heirarchy Tables        (subfolders in folder)
  100.  
  101. ****** Folder, Message and Attachment dialogs are modeless, and therefore you
  102. can minimize all the objects on your desktop and directly compare 2 folders, etc.
  103.  
  104. ****** The MDB viewer also can do the following interactive functions within the 
  105. store:
  106.  
  107. lpFolder->CreateFolder()
  108. lpFolder->CopyFolder() 
  109. lpFolder->DeleteFolder()
  110. lpFolder->GetHeirarchyTable() 
  111. lpFolder->GetContentsTable()  
  112. lpFolder->SetProps()          
  113. lpFolder->DeleteProps()
  114. lpFolder->CreateMessage()
  115. lpFolder->CopyMessage()
  116. lpFolder->DeleteMessage()
  117. lpFolder->SaveChanges()
  118.  
  119. lpMessage->SetReadFlag()
  120. lpMessage->SaveChanges()
  121. lpMessage->SetProps()
  122. lpMessage->DeleteProps()
  123. lpMessage->CreateAttach()
  124. lpMessage->DeleteAttach()
  125. lpMessage->GetRecipientTable()
  126. lpMessage->ModifyRecipients()
  127. lpMessage->SubmitMessage()
  128.  
  129. lpAttach->SaveChanges()
  130. lpAttach->SetProps()
  131. lpAttach->DeleteProps()
  132.  
  133. lpMDB->GetReceiveFolder()
  134. lpMDB->SetReceiveFolder()
  135. lpMDB->AbortSubmit()
  136.  
  137. ****** In addition the viewer calls the following functions internally(without
  138. your ability to alter the parameters) :
  139.  
  140. MAPILogon()
  141. lpSession->Logoff()
  142. lpSession->OpenAddressBook()
  143. lpSession->OpenMessageStore()
  144. lpSession->GetMsgStoresTable()
  145. lpSession->Release()
  146.  
  147. lpMDB->OpenEntry()
  148. lpMDB->StoreLogoff()
  149.  
  150. lpFolder->Release()
  151. lpFolder->OpenEntry()
  152.  
  153. lpMessage->OpenAttach()
  154. lpMessage->Release()
  155.  
  156. lpAttach->Release()
  157.  
  158. ****** LIMITATIONS :
  159.  
  160. Currently the message store viewer only opens the message store denoted 
  161. as the default store in the Message Stores table.  Ability to open other 
  162. stores will be put into future version of the MDB viewer.  For now, use the
  163. profile editor to configure the store you want to open as the default store.
  164.  
  165. DeleteProps() can only delete one property at a time.
  166.  
  167. CopyMessages() can only copy one message at a time.
  168.  
  169. Addressing for ModifyRecipients goes through the MAPI common address dialog only.
  170.  
  171. The application currently does not use MAPI Notification, and therefore, sometimes in
  172. order to get a current refresh of listboxes with Messages and folders, you must click on
  173. the listbox.
  174.  
  175. *********** How to use the MDB viewer **********************************
  176.  
  177. The MDB viewer is a windows application, and is fairly intuitive, but there are a
  178. few things that can be tricky and I will explain how to use them here.
  179.  
  180. When you are in a dialog, let's say in a folder dialog, the context of all the operations
  181. performed is in the Folder you are currently looking at(upper left listbox with foldername
  182. describes where you are; the dialog title bar also describes your current location). 
  183.  
  184. Ex. if I do a CreateFolder from the Root folder, the new folder dialog will appear on top of our current
  185. root folder dialog, and this folder will be added to the list of subfolders in the HeirarchyTable
  186. of the root folder....so the subfolder is created underneath our current location.
  187.  
  188. For the interactive buttons to become active you have to be in the correct context...you have to
  189. have a message selected in the messages listbox to do a DeleteMessage().
  190.  
  191. Double click on listbox items or select an item in a listbox and select a button to open this object.
  192.  
  193. CopyMessages() and CopyFolder() require a bit of explaining.  Each of these needs a destination folder.
  194. Therefore I put in a mechanism for determining where the destination folder will be for the next call
  195. to CopyMessages() and/or CopyFolder().  To select the next destination folder for either of these
  196. calls, open a folder you want to be the destination folder and double click on the current folder listbox
  197. which is the listbox in the upper left of the folder dialog with only one entry in it.  This will bring up
  198. a message box describing that this will be the next destination folder for any CopyMessages() or CopyFolder()
  199. Then go to the source folder and select CopyMessages() or CopyFolder().....you get the picture.
  200.  
  201.  
  202.  
  203.  
  204.  
  205.