Exemplo de como chamar o SpellCheck do Word para verificar texto numa CMtext1 de Cobol.
É necessário ter o MS Office instalado com correção actuvada.

COBOL Código:
  1.  @OPTIONS NOALPHA                                                                                            
  2.  IDENTIFICATION DIVISION.                                                                                    
  3.  PROGRAM-ID.   CHECKSPELLING.                                                                                
  4.  ENVIRONMENT DIVISION.                                                                                      
  5.  CONFIGURATION SECTION.                                                                                      
  6.  REPOSITORY.                                                                                                
  7.         CLASS OLE     AS "*OLE"                                                                              
  8.         CLASS OLE-EX AS "*OLE-EXCEPTION".                                                                  
  9.  DATA DIVISION.                                                                                              
  10.  WORKING-STORAGE SECTION.                                                                                    
  11.  01  WORD         OBJECT REFERENCE  OLE.                                                                    
  12.  01  DOCUMENT     OBJECT REFERENCE  OLE.                                                                    
  13.  01  ACTIVEDOCUMENT OBJECT REFERENCE  OLE.                                                                  
  14.  01  LINHA        OBJECT REFERENCE  OLE.                                                                    
  15.  01  SELECTION    OBJECT REFERENCE  OLE.                                                                    
  16.  01  APPLICATION                    PIC X(20) VALUE "Word.Application".                                      
  17.  01  OLE-TRUE                       PIC 1(1)  BIT VALUE B"1".                                                
  18.  01  FILLER                         PIC 1(7)  BIT.                                                          
  19.  01  OLE-FALSE                      PIC 1(1)  BIT VALUE B"0".                                                
  20.  01  FILLER                         PIC 1(7)  BIT.                                                          
  21.  01  CRLF                           PIC X(002) VALUE X"0D0A".                                                
  22.  01  VAL                            PIC X(256).                                                              
  23.  01  S-INDEX                        PIC S9(4) COMP-5 VALUE 0.                                                
  24.  01  HWND                              BINARY-LONG.                                                          
  25.  01  WINDOWNAME                     PIC X(128) VALUE SPACE.                                                  
  26.  01  WINDOWCLASSE                   BINARY-LONG VALUE ZERO.                                                  
  27.  LINKAGE SECTION.                                                                                            
  28.  01  TEXTO                          PIC X(256).                                                              
  29.  01  CARACTERES                     PIC 9(008).                                                              
  30.  PROCEDURE DIVISION USING TEXTO CARACTERES.                                                                  
  31.  MAIN SECTION.                                                                                              
  32.  MAIN-00.                                                                                                    
  33.      MOVE 1 TO CARACTERES.                                                                                  
  34.      IF TEXTO = SPACE GO TO MAIN-99.                                                                        
  35.      INVOKE OLE "CREATE-OBJECT" USING APPLICATION RETURNING WORD.                                            
  36.      INVOKE WORD  "SET-VISIBLE"  USING OLE-FALSE.                                                            
  37.      INVOKE WORD "GET-DOCUMENTS"       RETURNING DOCUMENT.                                                  
  38.      INVOKE DOCUMENT "ADD"             RETURNING ACTIVEDOCUMENT.                                            
  39.      INVOKE WORD "GET-SELECTION" RETURNING LINHA.                                                            
  40. *                                                                                                            
  41.      MOVE TEXTO TO VAL.                                                                                      
  42.      INVOKE LINHA "TYPETEXT" USING VAL.                                                                      
  43. *                                                                                                            
  44.      INVOKE LINHA "WholeStory" RETURNING SELECTION.                                                          
  45.      INVOKE WORD  "SET-VISIBLE"  USING OLE-TRUE.                                                            
  46. *    INVOKE LINHA     "WholeStory" RETURNING SELECTION.                                                      
  47. *    INVOKE LINHA     "COPY" RETURNING VAL.                                                                  
  48.                                                                                                              
  49. *    MOVE "Ortografia: Português (Portugal)"   TO WINDOWNAME.                                                
  50.      MOVE "Documento1 - Word"                  TO WINDOWNAME.                                                
  51.      MOVE X"00"        TO WINDOWNAME(18:1).                                                                  
  52. *                                                                                                            
  53.      CALL "FindWindowA" WITH STDCALL USING                                                                  
  54.                            BY VALUE WINDOWCLASSE                                                            
  55.                            BY REFERENCE WINDOWNAME                                                          
  56.                         RETURNING HWND.                                                                      
  57.      IF HWND > 0 THEN                                                                                        
  58.           CALL "SetForegroundWindow" WITH STDCALL USING                                                      
  59.                            BY VALUE HWND.                                                                    
  60. *                                                                                                            
  61.      INVOKE ACTIVEDOCUMENT "CheckSpelling" RETURNING VAL.                                                    
  62. *                                                                                                            
  63.      INVOKE LINHA "GET-TEXT" RETURNING VAL.                                                                  
  64.      INSPECT VAL REPLACING ALL  X"0D" BY SPACE.                                                              
  65.      INSPECT VAL REPLACING ALL  X"0A" BY SPACE.                                                              
  66.      MOVE 256 TO CARACTERES.                                                                                
  67.  MAIN-50.                                                                                                    
  68.      IF VAL(CARACTERES:1) = SPACE GO TO MAIN-60.                                                            
  69.      GO TO MAIN-80.                                                                                          
  70.  MAIN-60.                                                                                                    
  71.      IF CARACTERES NOT = 1 SUBTRACT 1 FROM CARACTERES GO TO MAIN-50.                                        
  72.  MAIN-80.                                                                                                    
  73.      ADD 1 TO CARACTERES.                                                                                    
  74.      MOVE    VAL TO TEXTO.                                                                                  
  75.        INVOKE ACTIVEDOCUMENT "CLOSE" USING S-INDEX.                                                            
  76.      INVOKE WORD  "QUIT".                                                                                    
  77.      SET LINHA    TO NULL.                                                                                  
  78.      SET DOCUMENT TO NULL.                                                                                  
  79.      SET ACTIVEDOCUMENT TO NULL.                                                                            
  80.        SET WORD     TO NULL.                                                                                  
  81.  MAIN-99.                                                                                                    
  82.  END PROGRAM CHECKSPELLING.                                                                                  

PS: Deve ser alterado o nome da form do Word para o caso particular (Documento1 - Word).
Se não abre mas fica por tras da nossa form.

Espero que seja útil a alguém.

Saludos Rui Pinto