home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / wordautoma.tcl < prev    next >
Text File  |  1996-10-31  |  5KB  |  117 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1994
  4. #
  5. #      File:        @(#)wordautoma.tcl    /main/titanic/2
  6. #      Description:    Ole Automation Interface for Word.Basic    
  7. #            these are the used methods that do not
  8. #            dispatch automatically (because of type mismatches)
  9. #            therefore they are specified here
  10. #---------------------------------------------------------------------------
  11. # SccsId = @(#)wordautoma.tcl    /main/titanic/2   31 Oct 1996 Copyright 1994 Westmount Technology
  12.  
  13. # If Word gives a type mismatch on a method it is possible
  14. # to specify the method parameter(s) ourselves via the
  15. # 'knownDispatch' method.
  16. # The format is:
  17. # knownDispatch <name> <type specification> ?parameters?
  18. # name            - the name of the method
  19. # type specification    - hexadecimal encoded parameter type specification
  20. # parameters        - parameter values
  21. # The type specification has a 4 digit string for every parameter.
  22. # So for 5 parameters it has 20 digits. If the number of digits/4 do
  23. # not match the number of parameters an error is generated.
  24. # most common problem with Word is that the 2 byte signed int
  25. # (VT_I2 = 0002) is not recognized.
  26. #
  27. #  Parameter encoding:
  28. #
  29. #  VT_EMPTY            0000          nothing                     
  30. #  VT_NULL             0001          SQL style Null              
  31. #  VT_I2               0002          2 byte signed int           
  32. #  VT_I4               0003          4 byte signed int           
  33. #  VT_R4               0004          4 byte real                 
  34. #  VT_R8               0005          8 byte real                 
  35. #  VT_CY               0006          currency                    
  36. #  VT_DATE             0007         date                        
  37. #  VT_BSTR             0008          OLE Automation string       
  38. #  VT_DISPATCH         0009          IDispatch FAR*              
  39. #  VT_ERROR            000A          SCODE                       
  40. #  VT_BOOL             000B          True=-1, False=0            
  41. #  VT_VARIANT          000C          VARIANT FAR*                
  42. #  VT_UNKNOWN          000D          IUnknown FAR*               
  43. #  VT_I1               0010          signed char                 
  44. #  VT_UI1              0011          unsigned char               
  45. #  VT_UI2              0012          unsigned short              
  46. #  VT_UI4              0013          unsigned short              
  47. #  VT_I8               0014          signed 64-bit int           
  48. #  VT_UI8              0015          unsigned 64-bit int         
  49. #  VT_INT              0016          signed machine int          
  50. #  VT_UINT             0017          unsigned machine int        
  51. #  VT_VOID             0018          C style void                
  52. #  VT_HRESULT          0019                                    
  53. #  VT_PTR              001A          pointer type                
  54. #  VT_SAFEARRAY        001B          (use VT_ARRAY in VARIANT)   
  55. #  VT_CARRAY           001C          C style array               
  56. #  VT_USERDEFINED      001D          user defined type           
  57. #  VT_LPSTR            001E          null terminated string      
  58. #  VT_LPWSTR           001F          wide null terminated string 
  59.  
  60.  
  61. Class WordAutomationObject : {OleAutoObject} {
  62.     constructor
  63.     method destructor
  64.     method chkInsert
  65.  
  66.     method EditBookmark
  67.     method SetDocumentProperty
  68.     method FormatParagraph
  69.     method FormatPicture
  70.     method CharRight
  71. }
  72.  
  73. constructor WordAutomationObject {class this} {
  74.     set this [OleAutoObject::constructor $class $this Word.Basic]
  75.     # load English interface file for Word
  76.     $this loadTypeLibrary [m4_path_name etc wb70en32.tlb]
  77.     return $this
  78. }
  79.  
  80. method WordAutomationObject::destructor {this} {
  81.     
  82. }
  83.  
  84. method WordAutomationObject::chkInsert {this {str ""}} {
  85.     # wrapper for Insert
  86.     # if str == "" skip Insert
  87.     #
  88.     if {$str != ""} {
  89.         #  VT_BSTR  0008  OLE Automation string       
  90.         set tp 0008
  91.         $this knownDispatch Insert $tp $str
  92.     }
  93. }
  94.  
  95. method WordAutomationObject::EditBookmark {this name sortBy add del goto} {
  96.     set tp 00080002000b000b000b
  97.     $this knownDispatch EditBookmark $tp $name $sortBy $add $del $goto
  98. }
  99.  
  100. method WordAutomationObject::SetDocumentProperty {this name type val builtin} {
  101.     set tp 0008000200080002
  102.     $this knownDispatch SetDocumentProperty $tp $name $type $val $builtin
  103. }
  104.  
  105. method WordAutomationObject::FormatPicture {this size crl crr crt crb scx scy szx szy} {
  106.     set tp 000200080008000800080008000800080008
  107.     $this knownDispatch FormatPicture $tp $size $crl $crr $crt $crb $scx $scy $szx $szy
  108. }
  109.  
  110. method WordAutomationObject::CharRight {this count select} {
  111.     set tp 00020002
  112.     $this knownDispatch CharRight $tp $count $select
  113. }
  114.  
  115.