Código para escolher uma COR :

O código da Cor é devolvido em 4 Bytes.

COBOL Código:
  1.  01 W-RGB         GLOBAL.
  2.     03 W-RED                 PIC X.
  3.     03 W-GREEN               PIC X.
  4.     03 W-BLUE                PIC X.
  5.     03 W-COLORFILLER         PIC X  VALUE LOW-VALUE.


COBOL Código:
  1.     INITIALIZE LNKHANDLE.
  2.     CALL "CHOOSECOLOR" USING LNKCOLOR LNKHANDLE.  
  3.     MOVE LNKCOLOR TO W-RGB.
  4.     MOVE LOW-VALUES TO W-COLORFILLER.
  5.     MOVE W-RGB       TO "BackColor" OF CMSTATIC315.


Chamada á API do Windows:

COBOL Código:
  1.  @OPTIONS NOALPHA                                                      
  2. *****************************************************************      
  3. *  Copyright (c) 2005 RUI PINTO SOFTWARE.                              
  4. *                                                                      
  5. *  Last Modified:    Jun 2008.                                          
  6. *****************************************************************      
  7.  IDENTIFICATION DIVISION.                                              
  8.  PROGRAM-ID.    CHOOSECOLOR.                                            
  9.  AUTHOR.        Rui Pinto - JUN 2008.                                  
  10. *-----------------------------------------------------------------      
  11.  ENVIRONMENT DIVISION.                                                  
  12.  CONFIGURATION SECTION.                                                
  13.  SPECIAL-NAMES.                                                        
  14.  INPUT-OUTPUT SECTION.                                                  
  15.  FILE-CONTROL.                                                          
  16. *-----------------------------------------------------------------      
  17.  DATA DIVISION.                                                        
  18.  BASED-STORAGE SECTION.                                                
  19.  FILE SECTION.                                                          
  20.  WORKING-STORAGE SECTION.                                              
  21.  01 WSCHOOSECOLOR.                                                      
  22.      03  LSTRUCTSIZE        PIC S9(009)  COMP-5.                        
  23.      03  HWNDOWNER          PIC S9(009)  COMP-5.                        
  24.      03  HINSTANCE          PIC S9(009)  COMP-5.                        
  25.      03  RGBRESULT          PIC X(004).                                
  26.      03  LPCUSTCOLOR        POINTER.                                    
  27.      03  FLAGS              PIC S9(009)  COMP-5.                        
  28.      03  CUSTDATA           PIC S9(009)  COMP-5.                        
  29.      03  FNHOOK             PIC S9(009)  COMP-5.                        
  30.      03  TEMPLATENAME       POINTER.                                    
  31. *                                                                      
  32.  01  CUSTCOLOR              PIC X(064) VALUE ALL ZERO.                  
  33.  01  TMLP                   PIC X(001) VALUE X"00".                    
  34.  01  RESULT                 PIC S9(009)  COMP-5.                        
  35.  01  OLDRGB                 PIC X(004).                                
  36.  LINKAGE SECTION.                                                      
  37.  01  LNKCOLOR                         PIC X(004).                      
  38.  01  LNKHANDLE                        PIC S9(009)  COMP-5.              
  39. *                                                                      
  40.  PROCEDURE DIVISION USING LNKCOLOR LNKHANDLE.                          
  41.  MAIN SECTION.                                                          
  42.  MAIN-00.                                                              
  43.       MOVE LNKCOLOR TO OLDRGB CUSTCOLOR(1:4).                          
  44.       INITIALIZE WSCHOOSECOLOR.                                        
  45.       MOVE 36 TO LSTRUCTSIZE.                                          
  46.       MOVE LNKHANDLE TO HWNDOWNER.                                      
  47.       MOVE FUNCTION ADDR (CUSTCOLOR)    TO LPCUSTCOLOR.                
  48.       MOVE FUNCTION ADDR (TMLP)         TO TEMPLATENAME.                
  49.       MOVE 3         TO FLAGS.                                          
  50.       MOVE LNKCOLOR  TO RGBRESULT.                                      
  51.       CALL "ChooseColorA" WITH STDCALL USING BY REFERENCE WSCHOOSECOLOR
  52.                        RETURNING RESULT.                                
  53.       IF RESULT = 0 MOVE OLDRGB TO LNKCOLOR                            
  54.           ELSE      MOVE RGBRESULT TO LNKCOLOR.                        
  55.  MAIN-99.                                                              
  56.  END PROGRAM CHOOSECOLOR.