home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v1.zip / DDKX86 / H / PMSHL.H < prev    next >
C/C++ Source or Header  |  1995-04-14  |  31KB  |  739 lines

  1. /*DDK*************************************************************************/
  2. /*                                                                           */
  3. /* COPYRIGHT    Copyright (C) 1995 IBM Corporation                           */
  4. /*                                                                           */
  5. /*    The following IBM OS/2 WARP source code is provided to you solely for  */
  6. /*    the purpose of assisting you in your development of OS/2 WARP device   */
  7. /*    drivers. You may use this code in accordance with the IBM License      */
  8. /*    Agreement provided in the IBM Device Driver Source Kit for OS/2. This  */
  9. /*    Copyright statement may not be removed.                                */
  10. /*                                                                           */
  11. /*****************************************************************************/
  12. /****************************** Module Header ******************************\
  13. *
  14. * Module Name: PMSHL.H
  15. *
  16. * OS/2 Presentation Manager Shell constants, types, messages and
  17. * function declarations include file.
  18. *
  19. *
  20. * ===========================================================================
  21. *
  22. * The following symbols are used in this file for conditional sections.
  23. *
  24. *   INCL_SHLERRORS       defined if INCL_ERRORS is defined
  25. *   INCL_WINPROGRAMLIST  Include Program List Calls
  26. *   INCL_WINSHELLDATA    Include Presentation Manager profile calls
  27. *   INCL_WINSWITCHLIST   Include Switch List Calls
  28. *
  29. * ===========================================================================
  30. *
  31. * Comments at the end of each typedef line give the name tags used in
  32. * the assembler include version of this file.
  33. *
  34. * The assembler include version of this file excludes lines between XLATOFF
  35. * and XLATON comments.
  36. *
  37. #ifndef __IBMC__
  38.    * The public version of this file (as shipped with the OS/2 Toolkit
  39.    * product) excludes all non 32-bit material marked in this file
  40.    * as well as any areas specifically marked with __IBMC__ conditional
  41.    * sections - including this paragraph. The H2IBMH rexx command file
  42.    * removes these sections.
  43. #endif
  44. \***************************************************************************/
  45.  
  46. /* XLATOFF */
  47. #ifdef __IBMC__
  48.    #pragma checkout( suspend )
  49.       #ifndef __CHKHDR__
  50.          #pragma checkout( suspend )
  51.       #endif
  52.    #pragma checkout( resume )
  53. #endif
  54. /* XLATON */
  55.  
  56. #define SHL_INCLUDED
  57.  
  58. #ifndef INCL_32         /* If neither INCL_32 or INCL_16 set already */
  59.    #ifndef INCL_16      /* find out from compiler if 32-bit or not.  */
  60.      #ifdef M_I386
  61.         #define INCL_32 /* Compiling for 32-bit */
  62.      #else
  63.         #define INCL_16 /* Compiling for 16-bit */
  64.      #endif
  65.   #endif
  66. #endif
  67.  
  68. /*** if error definitions are required then allow Shell errors *************/
  69. #ifdef INCL_ERRORS
  70.    #define INCL_SHLERRORS
  71. #endif /* INCL_ERRORS */
  72.  
  73.  
  74. #ifndef SESMGR
  75.    /*** common types, constants and function declarations ******************/
  76.  
  77.  
  78.    /*** maximum title length ***********************************************/
  79.    #define MAXNAMEL 60
  80.  
  81.  
  82.    /*** program handle *****************************************************/
  83.    typedef LHANDLE HPROGRAM;       /* hprog */
  84.    typedef HPROGRAM FAR * PHPROGRAM;
  85.    typedef LHANDLE HAPP;
  86.  
  87.  
  88.    /*** ini file handle ****************************************************/
  89.    typedef LHANDLE HINI;           /* hini */
  90.    typedef HINI FAR * PHINI;
  91.  
  92.  
  93.    #define HINI_PROFILE         (HINI) NULL
  94.    #define HINI_USERPROFILE     (HINI) -1L
  95.    #define HINI_SYSTEMPROFILE   (HINI) -2L
  96.    #define HINI_USER    HINI_USERPROFILE
  97.    #define HINI_SYSTEM  HINI_SYSTEMPROFILE
  98.  
  99.  
  100.    typedef struct _PRFPROFILE {  /* prfpro */
  101.       ULONG  cchUserName;
  102.       PSZ    pszUserName;
  103.       ULONG  cchSysName;
  104.       PSZ    pszSysName;
  105.    } PRFPROFILE;
  106.    typedef PRFPROFILE FAR *PPRFPROFILE;
  107.  
  108. #endif  /* end #ifndef SESMGR */
  109.  
  110. #ifdef INCL_WINPROGRAMLIST
  111.    /*** program list section ***********************************************/
  112.    #ifndef SESMGR
  113.  
  114.       /*** maximum path length *********************************************/
  115.       #define MAXPATHL 128
  116.  
  117.       /*** root group handle ***********************************************/
  118.       #define SGH_ROOT      (HPROGRAM)-1L
  119.  
  120.       typedef struct _HPROGARRAY {     /* hpga */
  121.          HPROGRAM ahprog[1];
  122.       } HPROGARRAY;
  123.       typedef HPROGARRAY FAR *PHPROGARRAY;
  124.  
  125.    #endif  /* end of #ifndef SESMGR */
  126.  
  127.    #ifdef INCL_32
  128.       typedef ULONG PROGCATEGORY;       /* progc */
  129.    #else
  130.       typedef char  PROGCATEGORY;       /* progc */
  131.    #endif
  132.  
  133.    typedef PROGCATEGORY FAR *PPROGCATEGORY;
  134.  
  135.    /*** values acceptable for PROGCATEGORY for PM groups *******************/
  136.    #define PROG_DEFAULT             (PROGCATEGORY)0
  137.    #define PROG_FULLSCREEN          (PROGCATEGORY)1
  138.    #define PROG_WINDOWABLEVIO       (PROGCATEGORY)2
  139.    #define PROG_PM                  (PROGCATEGORY)3
  140.    #define PROG_GROUP               (PROGCATEGORY)5
  141.    #define PROG_REAL                (PROGCATEGORY)4
  142.    #define PROG_VDM                 (PROGCATEGORY)4
  143.    #define PROG_WINDOWEDVDM         (PROGCATEGORY)7
  144.    #define PROG_DLL                 (PROGCATEGORY)6
  145.    #define PROG_PDD                 (PROGCATEGORY)8
  146.    #define PROG_VDD                 (PROGCATEGORY)9
  147.    #define PROG_WINDOW_REAL         (PROGCATEGORY)10
  148.    #define PROG_WINDOW_PROT         (PROGCATEGORY)11
  149.    #define PROG_30_STD              (PROGCATEGORY)11
  150.    #define PROG_WINDOW_AUTO         (PROGCATEGORY)12
  151.    #define PROG_SEAMLESSVDM         (PROGCATEGORY)13
  152.    #define PROG_30_STDSEAMLESSVDM   (PROGCATEGORY)13
  153.    #define PROG_SEAMLESSCOMMON      (PROGCATEGORY)14
  154.    #define PROG_30_STDSEAMLESSCOMMON (PROGCATEGORY)14
  155.    #define PROG_31_STDSEAMLESSVDM   (PROGCATEGORY)15
  156.    #define PROG_31_STDSEAMLESSCOMMON (PROGCATEGORY)16
  157.    #define PROG_31_ENHSEAMLESSVDM   (PROGCATEGORY)17
  158.    #define PROG_31_ENHSEAMLESSCOMMON (PROGCATEGORY)18
  159.    #define PROG_31_ENH              (PROGCATEGORY)19
  160.    #define PROG_31_STD              (PROGCATEGORY)20
  161.    #define PROG_RESERVED            (PROGCATEGORY)255
  162.  
  163.    #ifndef SESMGR
  164.  
  165.       #ifdef INCL_32
  166.          typedef struct _PROGTYPE {       /* progt */
  167.             PROGCATEGORY progc;
  168.             ULONG        fbVisible;
  169.          } PROGTYPE;
  170.       #else
  171.          typedef struct _PROGTYPE {       /* progt */
  172.             char         progc;          /* should be PROGCATEGORY */
  173.             UCHAR        fbVisible;
  174.          } PROGTYPE;
  175.       #endif
  176.       typedef PROGTYPE FAR *PPROGTYPE;
  177.  
  178.  
  179.       /*** visibility flag for PROGTYPE structure **************************/
  180.       #define SHE_VISIBLE         0x00
  181.       #define SHE_INVISIBLE       0x01
  182.       #define SHE_RESERVED        0xFF
  183.  
  184.       /*** Protected group flag for PROGTYPE structure *********************/
  185.       #define SHE_UNPROTECTED     0x00
  186.       #define SHE_PROTECTED       0x02
  187.  
  188.       #ifndef INCL_32
  189.          /*** window size structure ****************************************/
  190.          typedef struct _XYWINSIZE {      /* xywin */
  191.             SHORT x;
  192.             SHORT y;
  193.             SHORT cx;
  194.             SHORT cy;
  195.             USHORT fsWindow;
  196.          } XYWINSIZE;
  197.          typedef XYWINSIZE FAR *PXYWINSIZE;
  198.  
  199.          /*** Definitions for Window Positioning ***************************/
  200.          #define XYF_NOAUTOCLOSE  0x0008
  201.          #define XYF_MINIMIZED    0x0004
  202.          #define XYF_MAXIMIZED    0x0002
  203.          #define XYF_INVISIBLE    0x0001
  204.          #define XYF_NORMAL       0X0000
  205.  
  206.          /*** these structures and definitions not used in 32-bit **********/
  207.          typedef struct _PROGRAMENTRY {   /* proge */
  208.             HPROGRAM hprog;
  209.             PROGTYPE progt;
  210.             CHAR     szTitle[MAXNAMEL+1];
  211.          } PROGRAMENTRY;
  212.          typedef PROGRAMENTRY FAR *PPROGRAMENTRY;
  213.  
  214.          typedef struct _PIBSTRUCT {      /* pib */
  215.             PROGTYPE  progt;
  216.             CHAR      szTitle[MAXNAMEL+1];
  217.             CHAR      szIconFileName[MAXPATHL+1];
  218.             CHAR      szExecutable[MAXPATHL+1];
  219.             CHAR      szStartupDir[MAXPATHL+1];
  220.             XYWINSIZE xywinInitial;
  221.             USHORT    res1;
  222.             LHANDLE   res2;
  223.             USHORT    cchEnvironmentVars;
  224.             PCH       pchEnvironmentVars;
  225.             USHORT    cchProgramParameter;
  226.             PCH       pchProgramParameter;
  227.          } PIBSTRUCT;
  228.          typedef  PIBSTRUCT FAR *PPIBSTRUCT;
  229.       #endif
  230.  
  231.  
  232.       /*** Structures associated with 'Prf' calls **************************/
  233.       #ifdef INCL_32
  234.          typedef struct _PROGDETAILS {  /* progde */
  235.             ULONG     Length;         /* set this to sizeof(PROGDETAILS)  */
  236.             PROGTYPE  progt;
  237.             PSZ       pszTitle;       /* any of the pointers can be NULL  */
  238.             PSZ       pszExecutable;
  239.             PSZ       pszParameters;
  240.             PSZ       pszStartupDir;
  241.             PSZ       pszIcon;
  242.             PSZ       pszEnvironment; /* this is terminated by  /0/0      */
  243.             SWP       swpInitial;     /* this replaces XYWINSIZE          */
  244.          } PROGDETAILS;
  245.       #else
  246.          typedef struct _PROGDETAILS {  /* progde */
  247.             ULONG     Length;         /* set this to sizeof(PROGDETAILS)  */
  248.             PROGTYPE  progt;
  249.             USHORT    pad1[3];
  250.             PSZ       pszTitle;       /* any of the pointers can be NULL  */
  251.             PSZ       pszExecutable;
  252.             PSZ       pszParameters;
  253.             PSZ       pszStartupDir;
  254.             PSZ       pszIcon;
  255.             PSZ       pszEnvironment; /* this is terminated by  /0/0      */
  256.             SWP       swpInitial;     /* this replaces XYWINSIZE          */
  257.             USHORT    pad2[5];
  258.          } PROGDETAILS;
  259.       #endif
  260.       typedef  PROGDETAILS FAR *PPROGDETAILS;
  261.  
  262.       #ifdef INCL_32
  263.          typedef struct _PROGTITLE {           /* progti */
  264.             HPROGRAM hprog;
  265.             PROGTYPE progt;
  266.             PSZ      pszTitle;
  267.          } PROGTITLE;
  268.       #else
  269.          typedef struct _PROGTITLE {           /* progti */
  270.             HPROGRAM hprog;
  271.             PROGTYPE progt;
  272.             USHORT   pad1[3];
  273.             PSZ      pszTitle;
  274.          } PROGTITLE;
  275.       #endif
  276.       typedef PROGTITLE FAR *PPROGTITLE;
  277.  
  278.       /*** Program List API Function Definitions ***************************/
  279.       #ifdef INCL_16
  280.          /* XLATOFF */
  281.          #ifndef INCL_NOXLATE_WIN16
  282.             #define WinQueryProgramTitles Win16QueryProgramTitles
  283.             #define WinAddProgram Win16AddProgram
  284.             #define WinQueryDefinition Win16QueryDefinition
  285.             #define WinCreateGroup Win16CreateGroup
  286.             #define PrfQueryProgramTitles Prf16QueryProgramTitles
  287.             #define PrfAddProgram Prf16AddProgram
  288.             #define PrfChangeProgram Prf16ChangeProgram
  289.             #define PrfQueryDefinition Prf16QueryDefinition
  290.             #define PrfRemoveProgram Prf16RemoveProgram
  291.             #define PrfQueryProgramHandle Prf16QueryProgramHandle
  292.             #define PrfCreateGroup Prf16CreateGroup
  293.             #define PrfDestroyGroup Prf16DestroyGroup
  294.             #define PrfQueryProgramCategory Prf16QueryProgramCategory
  295.             #define WinStartApp Win16StartApp
  296.             #define WinTerminateApp Win16TerminateApp
  297.          #endif /* INCL_NOXLATE_WIN16  */
  298.          /* XLATON */
  299.       #endif /* INCL_16 */
  300.  
  301.       #ifndef INCL_32
  302.          /*** these API calls not used in 32-bit ***************************/
  303.          BOOL    APIENTRY WinQueryProgramTitles(HAB hab,
  304.                                                 HPROGRAM hprogGroup,
  305.                                                 PPROGRAMENTRY aprogeBuffer,
  306.                                                 USHORT usBufferLen,
  307.                                                 PUSHORT pusTotal);
  308.  
  309.          HPROGRAM  APIENTRY WinAddProgram(HAB hab,
  310.                                           PPIBSTRUCT ppibProgramInfo,
  311.                                           HPROGRAM hprogGroupHandle);
  312.  
  313.          USHORT  APIENTRY WinQueryDefinition(HAB hab,
  314.                                              HPROGRAM hprogProgHandle,
  315.                                              PPIBSTRUCT ppibProgramInfo,
  316.                                              USHORT usMaxLength);
  317.  
  318.          HPROGRAM  APIENTRY WinCreateGroup(HAB hab,
  319.                                            PSZ pszTitle,
  320.                                            UCHAR ucVisibility,
  321.                                            ULONG flres1,
  322.                                            ULONG flres2);
  323.       #endif  /* ifndef INCL_32 */
  324.  
  325.       /*** Program List API available 'Prf' calls **************************/
  326.  
  327.       ULONG APIENTRY PrfQueryProgramTitles(HINI hini,
  328.                                            HPROGRAM hprogGroup,
  329.                                            PPROGTITLE pTitles,
  330.                                            ULONG cchBufferMax,
  331.                                            PULONG pulCount);
  332.  
  333.       /*********************************************************************/
  334.       /*  NOTE: string information is concatanated after the array of      */
  335.       /*        PROGTITLE structures so you need to allocate storage       */
  336.       /*        greater than sizeof(PROGTITLE)*cPrograms to query programs */
  337.       /*        in a group.                                                */
  338.       /*                                                                   */
  339.       /*  PrfQueryProgramTitles recommended usage to obtain titles of all  */
  340.       /*  programs in a group (Hgroup=SGH_ROOT is for all groups):         */
  341.       /*                                                                   */
  342.       /*  BufLen = PrfQueryProgramTitles(Hini, Hgroup,                     */
  343.       /*                                  (PPROGTITLE)NULL, 0, &Count);    */
  344.       /*                                                                   */
  345.       /*  Alocate buffer of  Buflen                                        */
  346.       /*                                                                   */
  347.       /*  Len = PrfQueryProgramTitles(Hini, Hgroup, (PPROGTITLE)pBuffer,   */
  348.       /*                               BufLen, pCount);                    */
  349.       /*                                                                   */
  350.       /*********************************************************************/
  351.  
  352.       HPROGRAM APIENTRY PrfAddProgram(HINI hini,
  353.                                       PPROGDETAILS pDetails,
  354.                                       HPROGRAM hprogGroup);
  355.  
  356.       BOOL     APIENTRY PrfChangeProgram(HINI hini,
  357.                                          HPROGRAM hprog,
  358.                                          PPROGDETAILS pDetails);
  359.  
  360.       ULONG    APIENTRY PrfQueryDefinition(HINI hini,
  361.                                            HPROGRAM hprog,
  362.                                            PPROGDETAILS pDetails,
  363.                                            ULONG cchBufferMax);
  364.  
  365.       /*********************************************************************/
  366.       /*  NOTE: string information is concatanated after the PROGDETAILS   */
  367.       /*        field structure so you need to allocate storage greater    */
  368.       /*        than sizeof(PROGDETAILS) to query programs                 */
  369.       /*                                                                   */
  370.       /*  PrfQueryDefinition recomended usage:                             */
  371.       /*                                                                   */
  372.       /*  bufferlen = PrfQueryDefinition(Hini,Hprog,(PPROGDETAILS)NULL,0)  */
  373.       /*                                                                   */
  374.       /*  Alocate buffer of bufferlen bytes                                */
  375.       /*  set Length field (0 will be supported)                           */
  376.       /*                                                                   */
  377.       /*  (PPROGDETAILS)pBuffer->Length=sizeof(PPROGDETAILS)               */
  378.       /*                                                                   */
  379.       /*  len = PrfQueryDefinition(Hini, Hprog, (PPROGDETAILS)pBuffer,     */
  380.       /*      bufferlen)                                                   */
  381.       /*********************************************************************/
  382.  
  383.       BOOL     APIENTRY PrfRemoveProgram(HINI hini,
  384.                                          HPROGRAM hprog);
  385.  
  386.       ULONG    APIENTRY PrfQueryProgramHandle(HINI hini,
  387.                                               PSZ pszExe,
  388.                                               PHPROGARRAY phprogArray,
  389.                                               ULONG cchBufferMax,
  390.                                               PULONG pulCount);
  391.  
  392.       HPROGRAM APIENTRY PrfCreateGroup(HINI hini,
  393.                                        PSZ pszTitle,
  394.                                        UCHAR chVisibility);
  395.  
  396.       BOOL     APIENTRY PrfDestroyGroup(HINI hini,
  397.                                         HPROGRAM hprogGroup);
  398.  
  399.       PROGCATEGORY  APIENTRY PrfQueryProgramCategory(HINI hini,
  400.                                                      PSZ pszExe);
  401.  
  402.       HAPP APIENTRY WinStartApp(HWND hwndNotify,
  403.                                 PPROGDETAILS pDetails,
  404.                                 PSZ pszParams,
  405.                                 PVOID Reserved,
  406.                                 ULONG fbOptions);
  407.  
  408.       /*** bit values for Options parameter ********************************/
  409.       #define SAF_VALIDFLAGS  0x001F
  410.  
  411.       #define SAF_INSTALLEDCMDLINE  0x0001     /* use installed parameters */
  412.       #define SAF_STARTCHILDAPP     0x0002     /* related application      */
  413.       #define SAF_MAXIMIZED         0x0004     /* Start App maximized */
  414.       #define SAF_MINIMIZED         0x0008     /* Start App minimized, if !SAF_MAXIMIZED */
  415.       #define SAF_BACKGROUND        0x0010     /* Start app in the background */
  416.  
  417.  
  418.       BOOL APIENTRY WinTerminateApp(HAPP happ);
  419.  
  420.    #endif /* end of #ifndef SESMGR */
  421. #endif /* INCL_WINPROGRAMLIST */
  422.  
  423.  
  424. /*** switch list section ***************************************************/
  425.  
  426. typedef LHANDLE HSWITCH;        /* hsw */
  427. typedef HSWITCH FAR *PHSWITCH;
  428.  
  429. #ifndef SESMGR
  430.    #if (defined(INCL_WINSWITCHLIST) || !defined(INCL_NOCOMMON))
  431.  
  432.       #ifdef INCL_32
  433.          typedef struct _SWCNTRL {        /* swctl */
  434.             HWND     hwnd;
  435.             HWND     hwndIcon;
  436.             HPROGRAM hprog;
  437.             PID      idProcess;
  438.             ULONG    idSession;
  439.             ULONG    uchVisibility;
  440.             ULONG    fbJump;
  441.             CHAR     szSwtitle[MAXNAMEL+4];
  442.             ULONG    bProgType;
  443.          } SWCNTRL;
  444.       #else
  445.          typedef struct _SWCNTRL {        /* swctl */
  446.             HWND     hwnd;
  447.             HWND     hwndIcon;
  448.             HPROGRAM hprog;
  449.             USHORT   idProcess;
  450.             USHORT   idSession;
  451.             BYTE     uchVisibility;
  452.             BYTE     fbJump;
  453.             CHAR     szSwtitle[MAXNAMEL+1];
  454.             BYTE     bProgType;
  455.          } SWCNTRL;
  456.       #endif
  457.  
  458.       typedef SWCNTRL FAR *PSWCNTRL;
  459.  
  460.       /*** visibility flag for SWCNTRL structure ***************************/
  461.       #define SWL_VISIBLE    0x04
  462.       #define SWL_INVISIBLE  0x01
  463.       #define SWL_GRAYED     0x02
  464.  
  465.       /*** jump flag for SWCNTRL structure *********************************/
  466.       #define SWL_JUMPABLE    0x02
  467.       #define SWL_NOTJUMPABLE 0x01
  468.  
  469.       #ifdef INCL_16
  470.          /* XLATOFF */
  471.          #ifndef INCL_NOXLATE_WIN16
  472.             #define WinAddSwitchEntry Win16AddSwitchEntry
  473.             #define WinRemoveSwitchEntry Win16RemoveSwitchEntry
  474.          #endif /* INCL_NOXLATE_WIN16  */
  475.          /* XLATON */
  476.       #endif /* INCL_16 */
  477.  
  478.       /*** Switching Program functions *************************************/
  479.       HSWITCH APIENTRY WinAddSwitchEntry(PSWCNTRL);
  480.       #ifdef INCL_32
  481.          ULONG   APIENTRY WinRemoveSwitchEntry(HSWITCH);
  482.       #else
  483.          USHORT  APIENTRY WinRemoveSwitchEntry(HSWITCH);
  484.       #endif
  485.  
  486.    #endif  /* not INCL_NOCOMMON */
  487.  
  488.    #ifdef INCL_WINSWITCHLIST
  489.  
  490.       typedef struct _SWENTRY {        /* swent */
  491.          HSWITCH hswitch;
  492.          SWCNTRL swctl;
  493.       } SWENTRY;
  494.       typedef SWENTRY FAR *PSWENTRY;
  495.  
  496.       #ifdef INCL_32
  497.          typedef struct _SWBLOCK {        /* swblk */
  498.             ULONG    cswentry;
  499.             SWENTRY aswentry[1];
  500.          } SWBLOCK;
  501.       #else
  502.          typedef struct _SWBLOCK {        /* swblk */
  503.             USHORT   cswentry;
  504.             SWENTRY aswentry[1];
  505.          } SWBLOCK;
  506.       #endif
  507.       typedef SWBLOCK FAR *PSWBLOCK;
  508.  
  509.       #ifdef INCL_16
  510.          /* XLATOFF */
  511.          #ifndef INCL_NOXLATE_WIN16
  512.             #define WinChangeSwitchEntry Win16ChangeSwitchEntry
  513.             #define WinCreateSwitchEntry Win16CreateSwitchEntry
  514.             #define WinQuerySessionTitle Win16QuerySessionTitle
  515.             #define WinQuerySwitchEntry Win16QuerySwitchEntry
  516.             #define WinQuerySwitchHandle Win16QuerySwitchHandle
  517.             #define WinQuerySwitchList Win16QuerySwitchList
  518.             #define WinQueryTaskSizePos Win16QueryTaskSizePos
  519.             #define WinQueryTaskTitle Win16QueryTaskTitle
  520.             #define WinSwitchToProgram Win16SwitchToProgram
  521.             #define WinInstStartApp Win16InstStartApp
  522.          #endif /* INCL_NOXLATE_WIN16  */
  523.          /* XLATON */
  524.       #endif /* INCL_16 */
  525.  
  526.       #ifdef INCL_32
  527.          /*** 32-bit versions of these APIs have 32-bit parameters *********/
  528.          ULONG   APIENTRY WinChangeSwitchEntry(HSWITCH hswitchSwitch,
  529.                                                PSWCNTRL pswctlSwitchData);
  530.  
  531.          HSWITCH  APIENTRY WinCreateSwitchEntry(HAB hab,
  532.                                                 PSWCNTRL pswctlSwitchData);
  533.  
  534.          ULONG   APIENTRY WinQuerySessionTitle(HAB hab,
  535.                                                ULONG usSession,
  536.                                                PSZ pszTitle,
  537.                                                ULONG usTitlelen);
  538.  
  539.          ULONG   APIENTRY WinQuerySwitchEntry(HSWITCH hswitchSwitch,
  540.                                               PSWCNTRL pswctlSwitchData);
  541.  
  542.          HSWITCH  APIENTRY WinQuerySwitchHandle(HWND hwnd,
  543.                                                 PID pidProcess);
  544.          ULONG   APIENTRY WinQuerySwitchList(HAB hab,
  545.                                              PSWBLOCK pswblkSwitchEntries,
  546.                                              ULONG usDataLength);
  547.  
  548.          ULONG   APIENTRY WinQueryTaskSizePos(HAB hab,
  549.                                               ULONG usScreenGroup,
  550.                                               PSWP pswpPositionData);
  551.  
  552.          ULONG   APIENTRY WinQueryTaskTitle(ULONG usSession,
  553.                                             PSZ pszTitle,
  554.                                             ULONG usTitlelen);
  555.  
  556.          ULONG   APIENTRY WinSwitchToProgram(HSWITCH hswitchSwHandle);
  557.       #else
  558.          USHORT   APIENTRY WinChangeSwitchEntry(HSWITCH hswitchSwitch,
  559.                                                 PSWCNTRL pswctlSwitchData);
  560.  
  561.          HSWITCH  APIENTRY WinCreateSwitchEntry(HAB hab,
  562.                                                 PSWCNTRL pswctlSwitchData);
  563.  
  564.          USHORT   APIENTRY WinQuerySessionTitle(HAB hab,
  565.                                                 USHORT usSession,
  566.                                                 PSZ pszTitle,
  567.                                                 USHORT usTitlelen);
  568.  
  569.          USHORT   APIENTRY WinQuerySwitchEntry(HSWITCH hswitchSwitch,
  570.                                                PSWCNTRL pswctlSwitchData);
  571.  
  572.          HSWITCH  APIENTRY WinQuerySwitchHandle(HWND hwnd,
  573.                                                 PID pidProcess);
  574.  
  575.          USHORT   APIENTRY WinQuerySwitchList(HAB hab,
  576.                                               PSWBLOCK pswblkSwitchEntries,
  577.                                               USHORT usDataLength);
  578.  
  579.          USHORT   APIENTRY WinQueryTaskSizePos(HAB hab,
  580.                                                USHORT usScreenGroup,
  581.                                                PSWP pswpPositionData);
  582.  
  583.          USHORT   APIENTRY WinQueryTaskTitle(USHORT usSession,
  584.                                              PSZ pszTitle,
  585.                                              USHORT usTitlelen);
  586.  
  587.          USHORT   APIENTRY WinSwitchToProgram(HSWITCH hswitchSwHandle);
  588.       #endif
  589.  
  590.       #ifndef INCL_32
  591.          /*** this API calls not used in 32-bit ****************************/
  592.          HAPP APIENTRY WinInstStartApp(HINI hini,
  593.                                        HWND hwndNotifyWindow,
  594.                                        USHORT cCount,
  595.                                        PSZ FAR * aszApplication,
  596.                                        PSZ pszCmdLine,
  597.                                        PVOID pData,
  598.                                        USHORT fsOptions);
  599.       #endif  /* ifndef INCL_32 */
  600.  
  601.    #endif /* end of INCL_WINSWITCHLIST */
  602.  
  603.    #ifdef INCL_WINSHELLDATA
  604.       #ifdef INCL_16
  605.          /* XLATOFF */
  606.          #ifndef INCL_NOXLATE_WIN16
  607.             #define WinQueryProfileInt Win16QueryProfileInt
  608.             #define WinQueryProfileString Win16QueryProfileString
  609.             #define WinWriteProfileString Win16WriteProfileString
  610.             #define WinQueryProfileSize Win16QueryProfileSize
  611.             #define WinQueryProfileData Win16QueryProfileData
  612.             #define WinWriteProfileData Win16WriteProfileData
  613.             #define PrfQueryProfileInt Prf16QueryProfileInt
  614.             #define PrfQueryProfileString Prf16QueryProfileString
  615.             #define PrfWriteProfileString Prf16WriteProfileString
  616.             #define PrfQueryProfileSize Prf16QueryProfileSize
  617.             #define PrfQueryProfileData Prf16QueryProfileData
  618.             #define PrfWriteProfileData Prf16WriteProfileData
  619.             #define PrfOpenProfile Prf16OpenProfile
  620.             #define PrfCloseProfile Prf16CloseProfile
  621.             #define PrfReset Prf16Reset
  622.             #define PrfQueryProfile Prf16QueryProfile
  623.          #endif /* INCL_NOXLATE_WIN16  */
  624.          /* XLATON */
  625.       #endif /* INCL_16 */
  626.  
  627.       /*** OS2.INI Access functions ****************************************/
  628.       #ifndef INCL_32
  629.          /*** these API calls not used in 32-bit ***************************/
  630.          SHORT   APIENTRY WinQueryProfileInt(HAB hab,
  631.                                              PSZ pszAppName,
  632.                                              PSZ pszKeyName,
  633.                                              SHORT sDefault);
  634.  
  635.          USHORT  APIENTRY WinQueryProfileString(HAB hab,
  636.                                                 PSZ pszAppName,
  637.                                                 PSZ pszKeyName,
  638.                                                 PSZ pszDefault,
  639.                                                 PVOID pProfileString,
  640.                                                 USHORT usMaxPstring);
  641.  
  642.          BOOL    APIENTRY WinWriteProfileString(HAB hab,
  643.                                                 PSZ pszAppName,
  644.                                                 PSZ pszKeyName,
  645.                                                 PSZ pszValue);
  646.  
  647.          USHORT  APIENTRY WinQueryProfileSize(HAB hab,
  648.                                               PSZ pszAppName,
  649.                                               PSZ pszKeyName,
  650.                                               PUSHORT pusValue);
  651.  
  652.          BOOL    APIENTRY WinQueryProfileData(HAB hab,
  653.                                               PSZ pszAppName,
  654.                                               PSZ pszKeyName,
  655.                                               PVOID pValue,
  656.                                               PUSHORT pusSize);
  657.  
  658.          BOOL    APIENTRY WinWriteProfileData(HAB hab,
  659.                                               PSZ pszAppName,
  660.                                               PSZ pszKeyName,
  661.                                               PVOID pValue,
  662.                                               USHORT usSize);
  663.       #endif  /* ifndef INCL_32 */
  664.  
  665.       #ifdef INCL_32
  666.          LONG   APIENTRY PrfQueryProfileInt(HINI hini,
  667.                                             PSZ pszApp,
  668.                                             PSZ pszKey,
  669.                                             LONG  sDefault);
  670.       #else
  671.          SHORT  APIENTRY PrfQueryProfileInt(HINI hini,
  672.                                             PSZ pszApp,
  673.                                             PSZ pszKey,
  674.                                             SHORT sDefault);
  675.       #endif
  676.  
  677.       ULONG  APIENTRY PrfQueryProfileString(HINI hini,
  678.                                             PSZ pszApp,
  679.                                             PSZ pszKey,
  680.                                             PSZ pszDefault,
  681.                                             PVOID pBuffer,
  682.                                             ULONG cchBufferMax);
  683.  
  684.       BOOL   APIENTRY PrfWriteProfileString(HINI hini,
  685.                                             PSZ pszApp,
  686.                                             PSZ pszKey,
  687.                                             PSZ pszData);
  688.  
  689.       BOOL   APIENTRY PrfQueryProfileSize(HINI hini,
  690.                                           PSZ pszApp,
  691.                                           PSZ pszKey,
  692.                                           PULONG pulReqLen);
  693.  
  694.       BOOL   APIENTRY PrfQueryProfileData(HINI hini,
  695.                                           PSZ pszApp,
  696.                                           PSZ pszKey,
  697.                                           PVOID pBuffer,
  698.                                           PULONG pulBuffLen);
  699.  
  700.       BOOL   APIENTRY PrfWriteProfileData(HINI hini,
  701.                                           PSZ pszApp,
  702.                                           PSZ pszKey,
  703.                                           PVOID pData,
  704.                                           ULONG cchDataLen);
  705.  
  706.       HINI   APIENTRY PrfOpenProfile(HAB hab,
  707.                                      PSZ pszFileName);
  708.  
  709.       BOOL   APIENTRY PrfCloseProfile(HINI hini);
  710.  
  711.       BOOL   APIENTRY PrfReset(HAB hab,
  712.                                PPRFPROFILE pPrfProfile);
  713.  
  714.       BOOL   APIENTRY PrfQueryProfile(HAB hab,
  715.                                       PPRFPROFILE pPrfProfile);
  716.  
  717.       /*** public message, broadcast on WinReset ***************************/
  718.       #define PL_ALTERED 0x008E  /* WM_SHELLFIRST + 0E */
  719.  
  720.    #endif /* INCL_WINSHELLDATA */
  721.  
  722.    #ifdef INCL_SHLERRORS
  723.       #include <pmerr.h>
  724.    #endif /* INCL_SHLERRORS */
  725.  
  726. #endif /* of #ifndef SESMGR */
  727.  
  728. /* XLATOFF */
  729. #ifdef __IBMC__
  730.    #pragma checkout( suspend )
  731.       #ifndef __CHKHDR__
  732.          #pragma checkout( resume )
  733.       #endif
  734.    #pragma checkout( resume )
  735. #endif
  736. /* XLATON */
  737.  
  738. /**************************** end of file **********************************/
  739.