Jump to content

WinWaitForShell

From EDM2
Revision as of 08:07, 5 May 2005 by Prokushev (talk | contribs)

WinWaitForShell

WinWaitForShell(ulEvent)

Allows an application to wait for the Workplace Shell to become available.

Parameters

ulEvent - ULONG - input

The event to wait for.

Constants

The following constants are defined for the parameter ulEvent:

#define WWFS_QUERY            0x80000000
#define WWFS_DESKTOPCREATED   1
#define WWFS_DESKTOPOPENED    2
#define WWFS_DESKTOPPOPULATED 3

Returns

This function returns a BOOL with the values of:

Module

Define (C/C++)

Export name/Ordinal

Calling conversion

Cdecl32

Example Code

#define INCL_WINWORKPLACE
#define INCL_WINDIALOGS
#define INCL_WIN
#include <os2.h>

// Define function not found in headers
BOOL APIENTRY WinWaitForShell( ULONG ulEvent );

#define WWFS_QUERY            0x80000000
#define WWFS_DESKTOPCREATED   1
#define WWFS_DESKTOPOPENED    2
#define WWFS_DESKTOPPOPULATED 3

int main(int argc, char *argv[])
{
   HAB  hab;
   HMQ  hmq;
   BOOL fShellPopulated;

   fShellPopulated = WinWaitForShell(WWFS_DESKTOPPOPULATED); // Desktop populated
   if (fShellPopulated) {
      DosBeep(440, 1000);

      hab = WinInitialize(0);
      hmq = WinCreateMsgQueue(hab, 0);

      WinMessageBox(HWND_DESKTOP, HWND_DESKTOP, "Desktop was populated", "Message", 0x100, MB_OK|MB_ICONASTERISK);

      WinDestroyMsgQueue(hmq);
      WinTerminate(hab);
   } else {
      DosBeep(220, 1000);
   }

   return 0;
}

Related Functions

Notes

WinWaitForShell can not be called from detached processes. So a program started by a RUN= statement in config sys, can not rely on this method to wait for the shell to be up.

A message queue is not required for the thread which calls WinWaitForShell.

The prototype and defines for this function are defined in wpobject.h, which may be inaccessible if not compiling a WPS object class. Copy the defines and the prototype verbatim into your own code or headers for use. It is exported through os2386.lib in the OS/2 Warp 4 Toolkit.

OS Version Introduced

OS/2 Warp 4