123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377 |
- {
- This file is part of the Free Pascal run time library.
- Copyright (c) 2003 by Yuri Prokushev ([email protected]).
- OS/2 Presentation Manager Shell constants, types, messages and
- function declarations.
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************}
- {Warning: This code is alfa. Future versions
- of this unit might not be compatible.}
- unit pmshl;
- Interface
- uses
- Os2Def, PmWin;
- // common types, constants and function declarations
- // maximum title length
- const
- MaxNameL=60;
- // program handle
- type
- HProgram=Cardinal; // hprog
- PHProgram=^HProgram;
- HAPP=Cardinal;
- // ini file handle
- type
- HINI=Cardinal; // hini
- PHINI=^HINI;
- const
- HINI_PROFILE = 0;
- HINI_USERPROFILE =-1;
- HINI_SYSTEMPROFILE =-2;
- HINI_USER = HINI_USERPROFILE;
- HINI_SYSTEM = HINI_SYSTEMPROFILE;
- type
- PPrfProfile=^PrfProfile;
- PrfProfile=record // prfpro
- cchUserName: Cardinal;
- pszUserName: PChar;
- cchSysName: Cardinal;
- pszSysName: PChar;
- end;
- // program list section
- // maximum path length
- const
- MAXPATHL=128;
- // root group handle
- const
- SGH_ROOT = -1;
- type
- PHPROGARRAY=^HPROGARRAY;
- HPROGARRAY=record // hpga
- ahprog: Array[1..1] of HProgram;
- end;
- PROGCATEGORY=Cardinal; // progc
- PPROGCATEGORY=^PROGCATEGORY;
- // values acceptable for PROGCATEGORY for PM groups
- const
- PROG_DEFAULT =0;
- PROG_FULLSCREEN =1;
- PROG_WINDOWABLEVIO =2;
- PROG_PM =3;
- PROG_GROUP =5;
- PROG_REAL =4;
- PROG_VDM =4;
- PROG_WINDOWEDVDM =7;
- PROG_DLL =6;
- PROG_PDD =8;
- PROG_VDD =9;
- PROG_WINDOW_REAL =10;
- PROG_WINDOW_PROT =11;
- PROG_30_STD =11;
- PROG_WINDOW_AUTO =12;
- PROG_SEAMLESSVDM =13;
- PROG_30_STDSEAMLESSVDM =13;
- PROG_SEAMLESSCOMMON =14;
- PROG_30_STDSEAMLESSCOMMON =14;
- PROG_31_STDSEAMLESSVDM =15;
- PROG_31_STDSEAMLESSCOMMON =16;
- PROG_31_ENHSEAMLESSVDM =17;
- PROG_31_ENHSEAMLESSCOMMON =18;
- PROG_31_ENH =19;
- PROG_31_STD =20;
- PROG_DOS_GAME =21;
- PROG_WIN_GAME =22;
- PROG_DOS_MODE =23;
- PROG_RESERVED =255;
- type
- PProgType=^ProgType;
- ProgType=record // progt
- progc: ProgCategory;
- fbVisible: Cardinal;
- end;
- // visibility flag for PROGTYPE structure
- const
- SHE_VISIBLE = $00;
- SHE_INVISIBLE = $01;
- SHE_RESERVED = $FF;
- // Protected group flag for PROGTYPE structure
- const
- SHE_UNPROTECTED =$00;
- SHE_PROTECTED =$02;
- // Structures associated with 'Prf' calls
- type
- PPROGDETAILS=^PROGDETAILS;
- PROGDETAILS=record // progde
- Length: Cardinal; // set this to sizeof(PROGDETAILS)
- progt: ProgType;
- pszTitle: PChar; // any of the pointers can be NULL
- pszExecutable: PChar;
- pszParameters: PChar;
- pszStartupDir: PChar;
- pszIcon: PChar;
- pszEnvironment: PChar; // this is terminated by /0/0
- swpInitial: SWP; // this replaces XYWINSIZE
- end;
- PPROGTITLE=^PROGTITLE;
- PROGTITLE=record // progti
- hprog: HProgram;
- progt: ProgType;
- pszTitle: PChar;
- End;
- // Program List API Function Definitions
- // Program List API available 'Prf' calls
- Function PrfQueryProgramTitles(ahini: HINI; hprogGroup: HProgram;
- var pTitles: PROGTITLE; cchBufferMax: Cardinal;
- var pulCount: Cardinal): Cardinal; cdecl;
- external 'PMSHAPI' index 113;
- //*********************************************************************/
- //* NOTE: string information is concatanated after the array of */
- //* PROGTITLE structures so you need to allocate storage */
- //* greater than sizeof(PROGTITLE)*cPrograms to query programs */
- //* in a group. */
- //* */
- //* PrfQueryProgramTitles recommended usage to obtain titles of all */
- //* programs in a group (Hgroup=SGH_ROOT is for all groups): */
- //* */
- //* BufLen = PrfQueryProgramTitles(Hini, Hgroup, */
- //* (PPROGTITLE)NULL, 0, &Count); */
- //* */
- //* Alocate buffer of Buflen */
- //* */
- //* Len = PrfQueryProgramTitles(Hini, Hgroup, (PPROGTITLE)pBuffer, */
- //* BufLen, pCount); */
- //* */
- //*********************************************************************/
- Function PrfAddProgram(ahini: HINI; var pDetails: PROGDETAILS;
- hprogGroup: HProgram): HProgram; cdecl;
- external 'PMSHAPI' index 109;
- Function PrfChangeProgram(ahini: HINI;hprog: HProgram;
- var pDetails: PROGDETAILS): Longbool; cdecl;
- external 'PMSHAPI' index 110;
- Function PrfQueryDefinition(ahini: HINI; hprog: HProgram;
- var pDetails: PROGDETAILS;
- cchBufferMax: Cardinal): Cardinal; cdecl;
- external 'PMSHAPI' index 111;
- //*********************************************************************/
- //* NOTE: string information is concatanated after the PROGDETAILS */
- //* field structure so you need to allocate storage greater */
- //* than sizeof(PROGDETAILS) to query programs */
- //* */
- //* PrfQueryDefinition recomended usage: */
- //* */
- //* bufferlen = PrfQueryDefinition(Hini,Hprog,(PPROGDETAILS)NULL,0) */
- //* */
- //* Alocate buffer of bufferlen bytes */
- //* set Length field (0 will be supported) */
- //* */
- //* (PPROGDETAILS)pBuffer->Length=sizeof(PPROGDETAILS) */
- //* */
- //* len = PrfQueryDefinition(Hini, Hprog, (PPROGDETAILS)pBuffer, */
- //* bufferlen) */
- //*********************************************************************/
- Function PrfRemoveProgram(ahini: HINI; hprog: HProgram): Longbool; cdecl;
- external 'PMSHAPI' index 104;
- Function PrfQueryProgramHandle(ahini: HINI; const pszExe: PChar;
- aphprogArray: HPROGARRAY; cchBufferMax: Cardinal;
- var pulCount: Cardinal): Longbool; cdecl;
- external 'PMSHAPI' index 58;
- Function PrfCreateGroup(ahini: HINI; const pszTitle: PChar;
- chVisibility: Byte): HProgram; cdecl;
- external 'PMSHAPI' index 55;
- Function PrfDestroyGroup(ahini: HINI; hprogGroup: HProgram): Longbool; cdecl;
- external 'PMSHAPI' index 106;
- Function PrfQueryProgramCategory(ahini: HINI; const pszExe: PChar): PROGCATEGORY; cdecl;
- external 'PMSHAPI' index 59;
- Function WinStartApp(hwndNotify: HWND; var pDetails: PROGDETAILS; const pszParams: PChar;
- Reserved: Pointer; fbOptions: Cardinal): HAPP; cdecl;
- external 'PMSHAPI' index 119;
- // bit values for Options parameter
- const
- SAF_VALIDFLAGS =$001F;
- SAF_INSTALLEDCMDLINE =$0001; // use installed parameters
- SAF_STARTCHILDAPP =$0002; // related application
- SAF_MAXIMIZED =$0004; // Start App maximized
- SAF_MINIMIZED =$0008; // Start App minimized, if !SAF_MAXIMIZED
- SAF_BACKGROUND =$0010; // Start app in the background
- Function WinTerminateApp(ahapp: HAPP): Longbool; cdecl;
- external 'PMSHAPI' index 130;
- // switch list section
- type
- HSWITCH=Cardinal; // hsw
- PHSWITCH=^HSWITCH;
- PSWCNTRL=^SWCNTRL;
- SWCNTRL=record // swctl
- hwnd_: HWND;
- hwndIcon: HWND;
- hprog: HProgram;
- idProcess: Cardinal;
- idSession: Cardinal;
- uchVisibility: Cardinal;
- fbJump: Cardinal;
- szSwtitle: Array[1..MaxNameL+4] of Char;
- bProgType: Cardinal;
- end;
- // visibility flag for SWCNTRL structure
- const
- SWL_VISIBLE =$04;
- SWL_INVISIBLE =$01;
- SWL_GRAYED =$02;
- // jump flag for SWCNTRL structure
- const
- SWL_JUMPABLE =$02;
- SWL_NOTJUMPABLE =$01;
- // Switching Program functions
- Function WinAddSwitchEntry(VAR aps: SWCNTRL): HSWITCH; cdecl;
- external 'PMSHAPI' index 120;
- Function WinRemoveSwitchEntry(ah:HSWITCH): Cardinal; cdecl;
- external 'PMSHAPI' index 129;
- type
- PSWENTRY=^SWENTRY;
- SWENTRY=record // swent
- hswitch_: HSWITCH;
- swctl: SWCNTRL;
- end;
- PSWBLOCK=^SWBLOCK;
- SWBLOCK=record // swblk
- cswentry: Cardinal;
- aswentry: Array[1..1] of SWENTRY;
- End;
- // 32-bit versions of these APIs have 32-bit parameters
- Function WinChangeSwitchEntry(hswitchSwitch: HSWITCH;
- var pswctlSwitchData: SWCNTRL): Cardinal; cdecl;
- external 'PMSHAPI' index 123;
- Function WinCreateSwitchEntry(ahab: HAB; var pswctlSwitchData: SWCNTRL): HSWITCH; cdecl;
- external 'PMSHAPI' index 121;
- Function WinQuerySessionTitle(ahab: HAB; usSession: Cardinal;
- var pszTitle: PChar;
- usTitlelen: Cardinal): Cardinal; cdecl;
- external 'PMSHAPI' index 122;
- Function WinQuerySwitchEntry(hswitchSwitch: HSWITCH;
- var pswctlSwitchData: SWCNTRL): Cardinal; cdecl;
- external 'PMSHAPI' index 124;
- Function WinQuerySwitchHandle(ahwnd: HWND; pidProcess: Cardinal): HSWITCH; cdecl;
- external 'PMSHAPI' index 125;
- Function WinQuerySwitchList(ahab: HAB;var pswblkSwitchEntries: SWBLOCK;
- usDataLength: Cardinal): Cardinal; cdecl;
- external 'PMSHAPI' index 126;
- Function WinQueryTaskSizePos(ahab: HAB; usScreenGroup: Cardinal;
- var pswpPositionData: SWP): Cardinal; cdecl;
- external 'PMSHAPI' index 127;
- Function WinQueryTaskTitle(usSession: Cardinal; var pszTitle: PChar;
- usTitlelen: Cardinal): Cardinal; cdecl;
- external 'PMSHAPI' index 128;
- Function WinSwitchToProgram(hswitchSwHandle: HSWITCH): Cardinal; cdecl;
- external 'PMSHAPI' index 131;
- // OS2.INI Access functions
- Function PrfQueryProfileInt(ahini: HINI; const pszApp, pszKey: PChar;
- sDefault: Longint): Longint; cdecl;
- external 'PMSHAPI' index 114;
- Function PrfQueryProfileString(ahini: HINI; const pszApp, pszKey, pszDefault: PChar;
- var pBuffer; cchBufferMax: Cardinal): Cardinal; cdecl;
- external 'PMSHAPI' index 115;
- Function PrfWriteProfileString(ahini: HINI; const pszApp, pszKey, pszData: PChar): Longbool; cdecl;
- external 'PMSHAPI' index 116;
- Function PrfQueryProfileSize(ahini: HINI; const pszApp, pszKey: PChar;
- var pulReqLen: Cardinal): Longbool; cdecl;
- external 'PMSHAPI' index 101;
- Function PrfQueryProfileData(ahini: HINI; const pszApp, pszKey: PChar; var pBuffer;
- var pulBuffLen: Cardinal): Longbool; cdecl;
- external 'PMSHAPI' index 117;
- Function PrfWriteProfileData(ahini: HINI; const pszApp, pszKey: PChar; var pData;
- cchDataLen: Cardinal): Longbool; cdecl;
- external 'PMSHAPI' index 118;
- Function PrfOpenProfile(ahab: HAB;const pszFileName: PChar): HINI; cdecl;
- external 'PMSHAPI' index 102;
- Function PrfCloseProfile(ahini: HINI): Longbool; cdecl;
- external 'PMSHAPI' index 103;
- Function PrfReset(ahab: HAB; var apPrfProfile: PrfProfile): Longbool; cdecl;
- external 'PMSHAPI' index 108;
- Function PrfQueryProfile(ahab: HAB; var apPrfProfile: PrfProfile): Longbool; cdecl;
- external 'PMSHAPI' index 107;
- // public message, broadcast on WinReset
- const
- PL_ALTERED=$008E; // WM_SHELLFIRST + 0E
- Implementation
- End.
|