|
|
1.1 ! root 1: /******************************************************************************\ ! 2: * ! 3: * Copyright (c) IBM Corporation 1987, 1989 ! 4: * Copyright (c) MicroSoft Corporation 1987,1989 ! 5: * ! 6: * Module Name: PMSHL.H ! 7: * ! 8: * OS/2 Presentation Manager Shell constants, types, messages and ! 9: * function declarations ! 10: * ! 11: * ! 12: * ============================================================================= ! 13: * ! 14: * The following symbols are used in this file for conditional sections. ! 15: * ! 16: * INCL_WINSHELLDATA Include Presentation Manager profile calls ! 17: * INCL_SHLERRORS defined if INCL_ERRORS is defined ! 18: * INCL_WINSWITCHLIST Include Switch List Calls ! 19: * INCL_WINPROGRAMLIST Include Program List Calls ! 20: * ! 21: \******************************************************************************/ ! 22: ! 23: #if !(defined(INCL_32) || defined(INCL_16)) ! 24: #ifdef M_I386 ! 25: #define INCL_32 ! 26: #else /* not M_I386 */ ! 27: #define INCL_16 ! 28: #endif /* M_I386 */ ! 29: #endif /* INCL_32 || INCL_16 */ ! 30: ! 31: /* note the ifdef SESMGR is for the Boca build. It should really be */ ! 32: /* taken out in the final h file clear up. Paul. */ ! 33: ! 34: #ifndef SESMGR ! 35: ! 36: /* common types, constants and function declarations */ ! 37: ! 38: /* maximum title length */ ! 39: #define MAXNAMEL 60 ! 40: ! 41: /* window size structure */ ! 42: typedef struct _XYWINSIZE { /* xywin */ ! 43: SHORT x; ! 44: SHORT y; ! 45: SHORT cx; ! 46: SHORT cy; ! 47: USHORT fsWindow; ! 48: } XYWINSIZE; ! 49: typedef XYWINSIZE FAR *PXYWINSIZE; ! 50: ! 51: /* Definitions for fsWindow */ ! 52: #define XYF_NOAUTOCLOSE 0x0008 ! 53: #define XYF_MINIMIZED 0x0004 ! 54: #define XYF_MAXIMIZED 0x0002 ! 55: #define XYF_INVISIBLE 0x0001 ! 56: #define XYF_NORMAL 0X0000 ! 57: ! 58: /* program handle */ ! 59: typedef LHANDLE HPROGRAM; /* hprog */ ! 60: typedef HPROGRAM FAR * PHPROGRAM; ! 61: ! 62: /* ini file handle */ ! 63: typedef LHANDLE HINI; /* hini */ ! 64: typedef HINI FAR * PHINI; ! 65: ! 66: ! 67: #define HINI_PROFILE (HINI) NULL ! 68: #define HINI_USERPROFILE (HINI) -1L ! 69: #define HINI_SYSTEMPROFILE (HINI) -2L ! 70: ! 71: #define HINI_USER HINI_USERPROFILE ! 72: #define HINI_SYSTEM HINI_SYSTEMPROFILE ! 73: ! 74: ! 75: typedef struct _PRFPROFILE { /* prfpro */ ! 76: ULONG cchUserName; ! 77: PSZ pszUserName; ! 78: ULONG cchSysName; ! 79: PSZ pszSysName; ! 80: } PRFPROFILE; ! 81: ! 82: typedef PRFPROFILE FAR *PPRFPROFILE; ! 83: ! 84: #endif /* end #ifndef SESMGR */ ! 85: ! 86: #ifdef INCL_WINPROGRAMLIST ! 87: ! 88: #ifndef SESMGR ! 89: ! 90: /* maximum path length */ ! 91: #define MAXPATHL 128 ! 92: ! 93: /* root group handle */ ! 94: #define SGH_ROOT (HPROGRAM) -1L ! 95: ! 96: typedef struct _HPROGARRAY { /* hpga */ ! 97: HPROGRAM ahprog[1]; ! 98: } HPROGARRAY; ! 99: typedef HPROGARRAY FAR *PHPROGARRAY; ! 100: ! 101: #endif /* end of #ifndef SESMGR */ ! 102: ! 103: typedef char PROGCATEGORY; /* progc */ ! 104: typedef PROGCATEGORY FAR *PPROGCATEGORY; ! 105: ! 106: /* values acceptable for PROGCATEGORY for PM groups */ ! 107: #define PROG_DEFAULT (PROGCATEGORY)0 ! 108: #define PROG_FULLSCREEN (PROGCATEGORY)1 ! 109: #define PROG_WINDOWABLEVIO (PROGCATEGORY)2 ! 110: #define PROG_PM (PROGCATEGORY)3 ! 111: #define PROG_GROUP (PROGCATEGORY)5 ! 112: #define PROG_REAL (PROGCATEGORY)4 ! 113: #define PROG_VDM (PROGCATEGORY)4 ! 114: #define PROG_WINDOWEDVDM (PROGCATEGORY)7 ! 115: #define PROG_DLL (PROGCATEGORY)6 ! 116: #define PROG_PDD (PROGCATEGORY)8 ! 117: #define PROG_VDD (PROGCATEGORY)9 ! 118: #define PROG_RESERVED (PROGCATEGORY)255 ! 119: ! 120: #ifndef SESMGR ! 121: ! 122: /* visibility flag for PROGTYPE structure */ ! 123: #define SHE_VISIBLE (BYTE)0x00 ! 124: #define SHE_INVISIBLE (BYTE)0x01 ! 125: #define SHE_RESERVED (BYTE)0xFF ! 126: ! 127: /* Protected group flag for PROGTYPE structure */ ! 128: #define SHE_UNPROTECTED (BYTE)0x00 ! 129: #define SHE_PROTECTED (BYTE)0x02 ! 130: ! 131: typedef struct _PROGTYPE { /* progt */ ! 132: PROGCATEGORY progc; ! 133: UCHAR fbVisible; ! 134: } PROGTYPE; ! 135: typedef PROGTYPE FAR *PPROGTYPE; ! 136: ! 137: typedef struct _PROGRAMENTRY { /* proge */ ! 138: HPROGRAM hprog; ! 139: PROGTYPE progt; ! 140: CHAR szTitle[MAXNAMEL+1]; ! 141: } PROGRAMENTRY; ! 142: typedef PROGRAMENTRY FAR *PPROGRAMENTRY; ! 143: ! 144: typedef struct _PIBSTRUCT { /* pib */ ! 145: PROGTYPE progt; ! 146: CHAR szTitle[MAXNAMEL+1]; ! 147: CHAR szIconFileName[MAXPATHL+1]; ! 148: CHAR szExecutable[MAXPATHL+1]; ! 149: CHAR szStartupDir[MAXPATHL+1]; ! 150: XYWINSIZE xywinInitial; ! 151: USHORT res1; ! 152: LHANDLE res2; ! 153: USHORT cchEnvironmentVars; ! 154: PCH pchEnvironmentVars; ! 155: USHORT cchProgramParameter; ! 156: PCH pchProgramParameter; ! 157: } PIBSTRUCT; ! 158: typedef PIBSTRUCT FAR *PPIBSTRUCT; ! 159: ! 160: /******************************************************************************/ ! 161: /* */ ! 162: /* Structures associated with 'Prf' calls */ ! 163: /* */ ! 164: /******************************************************************************/ ! 165: ! 166: typedef struct _PROGDETAILS { /* progde */ ! 167: ULONG Length; /* set this to sizeof(PROGDETAILS) */ ! 168: PROGTYPE progt; ! 169: USHORT pad1[3]; /* ready for 32-bit PROGTYPE */ ! 170: PSZ pszTitle; /* any of the pointers can be NULL */ ! 171: PSZ pszExecutable; ! 172: PSZ pszParameters; ! 173: PSZ pszStartupDir; ! 174: PSZ pszIcon; ! 175: PSZ pszEnvironment; /* this is terminated by /0/0 */ ! 176: SWP swpInitial; /* this replaces XYWINSIZE */ ! 177: USHORT pad2[5]; /* ready for 32-bit SWP */ ! 178: } PROGDETAILS; ! 179: ! 180: typedef PROGDETAILS FAR *PPROGDETAILS; ! 181: ! 182: typedef struct _PROGTITLE { /* progti */ ! 183: HPROGRAM hprog; ! 184: PROGTYPE progt; ! 185: USHORT pad1[3]; /* padding ready for 32-bit PROGTYPE */ ! 186: PSZ pszTitle; ! 187: } PROGTITLE; ! 188: ! 189: typedef PROGTITLE FAR *PPROGTITLE; ! 190: ! 191: typedef struct _QFEOUTBLK { /* qfeout */ ! 192: USHORT Total; ! 193: USHORT Count; ! 194: HPROGRAM ProgramArr[1]; ! 195: } QFEOUTBLK; ! 196: typedef QFEOUTBLK FAR *PQFEOUTBLK; ! 197: ! 198: /* Program List API Function Definitions */ ! 199: ! 200: /*** Program Use */ ! 201: ! 202: /* XLATOFF */ ! 203: #ifdef INCL_16 ! 204: #define WinQueryProgramTitles Win16QueryProgramTitles ! 205: #define WinAddProgram Win16AddProgram ! 206: #define WinQueryDefinition Win16QueryDefinition ! 207: #define WinCreateGroup Win16CreateGroup ! 208: #define PrfQueryProgramTitles Prf16QueryProgramTitles ! 209: #define PrfAddProgram Prf16AddProgram ! 210: #define PrfChangeProgram Prf16ChangeProgram ! 211: #define PrfQueryDefinition Prf16QueryDefinition ! 212: #define PrfRemoveProgram Prf16RemoveProgram ! 213: #define PrfQueryProgramHandle Prf16QueryProgramHandle ! 214: #define PrfCreateGroup Prf16CreateGroup ! 215: #define PrfDestroyGroup Prf16DestroyGroup ! 216: #define PrfQueryProgramCategory Prf16QueryProgramCategory ! 217: #endif /* INCL_16 */ ! 218: /* XLATON */ ! 219: ! 220: #ifndef INCL_32 ! 221: ! 222: BOOL APIENTRY WinQueryProgramTitles(HAB hab, HPROGRAM hprogGroup ! 223: , PPROGRAMENTRY aprogeBuffer ! 224: , USHORT usBufferLen, PUSHORT pusTotal); ! 225: ! 226: /*** Single Program Manipulation */ ! 227: HPROGRAM APIENTRY WinAddProgram(HAB hab, PPIBSTRUCT ppibProgramInfo ! 228: , HPROGRAM hprogGroupHandle); ! 229: ! 230: USHORT APIENTRY WinQueryDefinition(HAB hab, HPROGRAM hprogProgHandle ! 231: , PPIBSTRUCT ppibProgramInfo ! 232: , USHORT usMaxLength); ! 233: ! 234: /*** Group Manipulation */ ! 235: HPROGRAM APIENTRY WinCreateGroup(HAB hab, PSZ pszTitle , UCHAR ucVisibility ! 236: , ULONG flres1, ULONG flres2); ! 237: ! 238: /******************************************************************************/ ! 239: /* */ ! 240: /* Program List API available 'Prf' calls */ ! 241: /* */ ! 242: /******************************************************************************/ ! 243: ! 244: ULONG APIENTRY PrfQueryProgramTitles(HINI hini, HPROGRAM hprogGroup ! 245: , PPROGTITLE pTitles, ULONG cchBufferMax, PULONG pulCount); ! 246: ! 247: /*****************************************************************************/ ! 248: /* */ ! 249: /* NOTE: string information is concatanated after the array of PROGTITLE */ ! 250: /* structures so you need to allocate storage greater than */ ! 251: /* sizeof(PROGTITLE)*cPrograms to query programs in a group */ ! 252: /* */ ! 253: /* PrfQueryProgramTitles recommended usage to obtain titles of all progams */ ! 254: /* in a group (Hgroup=SGH_ROOT is for all groups): */ ! 255: /* */ ! 256: /* BufLen = PrfQueryProgramTitles( Hini, Hgroup */ ! 257: /* , (PPROGTITLE)NULL, 0, &Count); */ ! 258: /* */ ! 259: /* Alocate buffer of Buflen */ ! 260: /* */ ! 261: /* Len = PrfQueryProgramTitles( Hini, Hgroup, (PPROGTITLE)pBuffer, BufLen */ ! 262: /* , pCount); */ ! 263: /* */ ! 264: /*****************************************************************************/ ! 265: ! 266: HPROGRAM APIENTRY PrfAddProgram ! 267: (HINI hini, PPROGDETAILS pDetails, HPROGRAM hprogGroup); ! 268: BOOL APIENTRY PrfChangeProgram ! 269: (HINI hini, HPROGRAM hprog, PPROGDETAILS pDetails); ! 270: ! 271: /***************************************************************************/ ! 272: /* when adding/changing programs the PROGDETAILS Length field should be */ ! 273: /* set to sizeof(PROGDETAILS) */ ! 274: /***************************************************************************/ ! 275: ! 276: ULONG APIENTRY PrfQueryDefinition ! 277: (HINI hini, HPROGRAM hprog, PPROGDETAILS pDetails, ULONG cchBufferMax); ! 278: ! 279: /*****************************************************************************/ ! 280: /* */ ! 281: /* NOTE: string information is concatanated after the PROGDETAILS field */ ! 282: /* structure so you need to allocate storage greater than */ ! 283: /* sizeof(PROGDETAILS) to query programs */ ! 284: /* */ ! 285: /* PrfQueryDefinition recomended usage: */ ! 286: /* */ ! 287: /* bufferlen = PrfQueryDefinition( Hini, Hprog, (PPROGDETAILS)NULL, 0) */ ! 288: /* */ ! 289: /* Alocate buffer of bufferlen bytes */ ! 290: /* set Length field (0 will be supported) */ ! 291: /* */ ! 292: /* (PPROGDETAILS)pBuffer->Length=sizeof(PPROGDETAILS) */ ! 293: /* */ ! 294: /* len = PrfQueryDefinition(Hini, Hprog, (PPROGDETAILS)pBuffer, bufferlen) */ ! 295: /* */ ! 296: /*****************************************************************************/ ! 297: ! 298: BOOL APIENTRY PrfRemoveProgram(HINI hini,HPROGRAM hprog); ! 299: ULONG APIENTRY PrfQueryProgramHandle (HINI hini,PSZ pszExe ! 300: ,PHPROGARRAY phprogArray, ULONG cchBufferMax,PULONG pulCount); ! 301: HPROGRAM APIENTRY PrfCreateGroup (HINI hini, PSZ pszTitle, UCHAR chVisibility); ! 302: BOOL APIENTRY PrfDestroyGroup(HINI hini,HPROGRAM hprogGroup); ! 303: PROGCATEGORY APIENTRY PrfQueryProgramCategory(HINI hini, PSZ pszExe); ! 304: ! 305: #endif /* ifndef INCL_32 */ ! 306: ! 307: #endif /* of #ifndef SESMGR */ ! 308: ! 309: #endif /* INCL_WINPROGRAMLIST */ ! 310: ! 311: #ifndef SESMGR ! 312: ! 313: #if (defined(INCL_WINSWITCHLIST) || !defined(INCL_NOCOMMON)) ! 314: ! 315: typedef LHANDLE HSWITCH; /* hsw */ ! 316: typedef HSWITCH FAR *PHSWITCH; ! 317: ! 318: /* visibility flag for SWCNTRL structure */ ! 319: #define SWL_VISIBLE (BYTE)0x04 ! 320: #define SWL_INVISIBLE (BYTE)0x01 ! 321: #define SWL_GRAYED (BYTE)0x02 ! 322: ! 323: /* visibility flag for SWCNTRL structure */ ! 324: #define SWL_JUMPABLE (BYTE)0x02 ! 325: #define SWL_NOTJUMPABLE (BYTE)0x01 ! 326: ! 327: typedef struct _SWCNTRL { /* swctl */ ! 328: HWND hwnd; ! 329: HWND hwndIcon; ! 330: HPROGRAM hprog; ! 331: PID idProcess; ! 332: USHORT idSession; ! 333: UCHAR uchVisibility; ! 334: UCHAR fbJump; ! 335: CHAR szSwtitle[MAXNAMEL+1]; ! 336: BYTE bProgType; ! 337: } SWCNTRL; ! 338: typedef SWCNTRL FAR *PSWCNTRL; ! 339: ! 340: /* XLATOFF */ ! 341: #ifdef INCL_16 ! 342: #define WinAddSwitchEntry Win16AddSwitchEntry ! 343: #define WinRemoveSwitchEntry Win16RemoveSwitchEntry ! 344: #endif /* INCL_16 */ ! 345: /* XLATON */ ! 346: ! 347: /*** Switching Program functions */ ! 348: HSWITCH APIENTRY WinAddSwitchEntry( PSWCNTRL ); ! 349: USHORT APIENTRY WinRemoveSwitchEntry( HSWITCH ); ! 350: ! 351: #endif /* not INCL_NOCOMMON */ ! 352: ! 353: #ifdef INCL_WINSWITCHLIST ! 354: ! 355: typedef struct _SWENTRY { /* swent */ ! 356: HSWITCH hswitch; ! 357: SWCNTRL swctl; ! 358: } SWENTRY; ! 359: typedef SWENTRY FAR *PSWENTRY; ! 360: ! 361: typedef struct _SWBLOCK { /* swblk */ ! 362: USHORT cswentry; ! 363: SWENTRY aswentry[1]; ! 364: } SWBLOCK; ! 365: typedef SWBLOCK FAR *PSWBLOCK; ! 366: ! 367: /* XLATOFF */ ! 368: #ifdef INCL_16 ! 369: #define WinChangeSwitchEntry Win16ChangeSwitchEntry ! 370: #define WinCreateSwitchEntry Win16CreateSwitchEntry ! 371: #define WinQuerySessionTitle Win16QuerySessionTitle ! 372: #define WinQuerySwitchEntry Win16QuerySwitchEntry ! 373: #define WinQuerySwitchHandle Win16QuerySwitchHandle ! 374: #define WinQuerySwitchList Win16QuerySwitchList ! 375: #define WinQueryTaskSizePos Win16QueryTaskSizePos ! 376: #define WinQueryTaskTitle Win16QueryTaskTitle ! 377: #define WinSwitchToProgram Win16SwitchToProgram ! 378: #endif /* INCL_16 */ ! 379: /* XLATON */ ! 380: ! 381: USHORT APIENTRY WinChangeSwitchEntry( HSWITCH hswitchSwitch ! 382: , PSWCNTRL pswctlSwitchData); ! 383: HSWITCH APIENTRY WinCreateSwitchEntry( HAB, PSWCNTRL ); ! 384: USHORT APIENTRY WinQuerySessionTitle( HAB hab, USHORT usSession ! 385: , PSZ pszTitle, USHORT usTitlelen); ! 386: USHORT APIENTRY WinQuerySwitchEntry( HSWITCH hswitchSwitch ! 387: , PSWCNTRL pswctlSwitchData); ! 388: HSWITCH APIENTRY WinQuerySwitchHandle( HWND hwnd, PID pidProcess); ! 389: USHORT APIENTRY WinQuerySwitchList( HAB hab, PSWBLOCK pswblkSwitchEntries ! 390: , USHORT usDataLength); ! 391: USHORT APIENTRY WinQueryTaskSizePos( HAB hab, USHORT usScreenGroup ! 392: , PSWP pswpPositionData); ! 393: USHORT APIENTRY WinQueryTaskTitle( USHORT usSession, PSZ pszTitle ! 394: , USHORT usTitlelen); ! 395: USHORT APIENTRY WinSwitchToProgram( HSWITCH hswitchSwHandle); ! 396: ! 397: #endif ! 398: ! 399: /* if error definitions are required then allow Shell errors */ ! 400: #ifdef INCL_ERRORS ! 401: #define INCL_SHLERRORS ! 402: #endif /* INCL_ERRORS */ ! 403: ! 404: #ifdef INCL_WINSHELLDATA ! 405: ! 406: /* XLATOFF */ ! 407: #ifdef INCL_16 ! 408: #define WinQueryProfileInt Win16QueryProfileInt ! 409: #define WinQueryProfileString Win16QueryProfileString ! 410: #define WinWriteProfileString Win16WriteProfileString ! 411: #define WinQueryProfileSize Win16QueryProfileSize ! 412: #define WinQueryProfileData Win16QueryProfileData ! 413: #define WinWriteProfileData Win16WriteProfileData ! 414: #define PrfQueryProfileInt Prf16QueryProfileInt ! 415: #define PrfQueryProfileString Prf16QueryProfileString ! 416: #define PrfWriteProfileString Prf16WriteProfileString ! 417: #define PrfQueryProfileSize Prf16QueryProfileSize ! 418: #define PrfQueryProfileData Prf16QueryProfileData ! 419: #define PrfWriteProfileData Prf16WriteProfileData ! 420: #define PrfOpenProfile Prf16OpenProfile ! 421: #define PrfCloseProfile Prf16CloseProfile ! 422: #define PrfReset Prf16Reset ! 423: #define PrfQueryProfile Prf16QueryProfile ! 424: #endif /* INCL_16 */ ! 425: /* XLATON */ ! 426: ! 427: #ifndef INCL_32 ! 428: ! 429: /*** OS2.INI Access functions */ ! 430: SHORT APIENTRY WinQueryProfileInt( HAB hab, PSZ pszAppName ! 431: , PSZ pszKeyName, SHORT sDefault); ! 432: USHORT APIENTRY WinQueryProfileString( HAB hab, PSZ pszAppName, PSZ pszKeyName ! 433: , PSZ pszDefault, PVOID pProfileString ! 434: , USHORT usMaxPstring); ! 435: BOOL APIENTRY WinWriteProfileString( HAB hab, PSZ pszAppName, PSZ pszKeyName ! 436: , PSZ pszValue); ! 437: USHORT APIENTRY WinQueryProfileSize( HAB hab, PSZ pszAppName, PSZ pszKeyName ! 438: , PUSHORT pusValue); ! 439: BOOL APIENTRY WinQueryProfileData( HAB hab, PSZ pszAppName, PSZ pszKeyName ! 440: , PVOID pValue, PUSHORT pusSize); ! 441: BOOL APIENTRY WinWriteProfileData( HAB hab, PSZ pszAppName, PSZ pszKeyName ! 442: , PVOID pValue, USHORT usSize); ! 443: ! 444: #endif /* ifndef INCL_32 */ ! 445: ! 446: /******************************************************************************/ ! 447: /* */ ! 448: /* INI file access API available calls 'Prf' */ ! 449: /* */ ! 450: /******************************************************************************/ ! 451: ! 452: SHORT APIENTRY PrfQueryProfileInt(HINI hini,PSZ pszApp,PSZ pszKey ! 453: ,SHORT sDefault); ! 454: ULONG APIENTRY PrfQueryProfileString(HINI hini,PSZ pszApp, PSZ pszKey ! 455: ,PSZ pszDefault, PVOID pBuffer, ULONG cchBufferMax); ! 456: BOOL APIENTRY PrfWriteProfileString ! 457: (HINI hini,PSZ pszApp, PSZ pszKey , PSZ pszData); ! 458: BOOL APIENTRY PrfQueryProfileSize ! 459: (HINI hini,PSZ pszApp, PSZ pszKey ,PULONG pulReqLen); ! 460: BOOL APIENTRY PrfQueryProfileData ! 461: (HINI hini, PSZ pszApp, PSZ pszKey, PVOID pBuffer, PULONG pulBuffLen); ! 462: ! 463: BOOL APIENTRY PrfWriteProfileData ! 464: (HINI hini, PSZ pszApp,PSZ pszKey,PVOID pData, ULONG cchDataLen); ! 465: ! 466: HINI APIENTRY PrfOpenProfile(HAB hab, PSZ pszFileName); ! 467: BOOL APIENTRY PrfCloseProfile(HINI hini); ! 468: BOOL APIENTRY PrfReset(HAB hab, PPRFPROFILE pPrfProfile); ! 469: BOOL APIENTRY PrfQueryProfile(HAB hab, PPRFPROFILE pPrfProfile); ! 470: ! 471: /* new public message, broadcast on WinReset */ ! 472: #define PL_ALTERED 0x008E /* WM_SHELLFIRST + 0E */ ! 473: ! 474: ! 475: #endif /* INCL_WINSHELLDATA */ ! 476: ! 477: #ifdef INCL_SHLERRORS ! 478: ! 479: #include <pmerr.h> ! 480: ! 481: #endif /* INCL_SHLERRORS */ ! 482: ! 483: typedef LHANDLE HAPP; ! 484: ! 485: /* XLATOFF */ ! 486: #ifdef INCL_16 ! 487: #define WinInstStartApp Win16InstStartApp ! 488: #define WinTerminateApp Win16TerminateApp ! 489: #endif /* INCL_16 */ ! 490: /* XLATON */ ! 491: ! 492: #ifndef INCL_32 ! 493: ! 494: HAPP APIENTRY WinInstStartApp( HINI hini, HWND hwndNotifyWindow, ! 495: USHORT cCount, PSZ FAR * aszApplication, ! 496: PSZ pszCmdLine, PVOID pData, USHORT fsOptions ); ! 497: ! 498: BOOL APIENTRY WinTerminateApp( HAPP happ ); ! 499: ! 500: #endif /* ifndef INCL_32 */ ! 501: ! 502: /* bit values for Options parameter of WinInstStartAppl */ ! 503: #define SAF_INSTALLEDCMDLINE 0x0001 /* use installed parameters */ ! 504: #define SAF_STARTCHILDAPP 0x0002 /* related application */ ! 505: ! 506: #endif /* of #ifndef SESMGR */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.