Jump to content

WinCreateMsgQueue

From EDM2
Revision as of 17:17, 19 May 2018 by Martini (talk | contribs)

After calling WinInitialize, you must call this function if your thread needs to respond to messages. Save the handle, as other functions need it as input.

Syntax

WinCreateMsgQueue( hab, maxMsg ) : Creates a message queue.

Parameters

HAB hab (input)
Anchor block of calling thread (from WinInitialize or WinQueryAnchorBlock).
LONG maxMsg (input)
The number of messages the queue can hold. Pass 0 for system default.

Returns

HMQ hmq
Handle to the newly created message queue. NULLHANDLE is returned if there was an error. WinGetLastError will return one of:
0x100A PMERR_RESOURCE_NOT_FOUND
0x1011 PMERR_HEAP_OUT_OF_MEMORY
0x1012 PMERR_HEAP_MAX_SIZE_REACHED
0x1018 PMERR_QUEUE_TOO_LARGE
0x1051 PMERR_NOT_IN_A_PM_SESSION
0x1052 PMERR_MSG_QUEUE_ALREADY_EXISTS

Define (C/C++)

#define INCL_WINMESSAGEMGR
#include <os2.h>

Example Code

#define INCL_WINMESSAGEMGR 
#include <os2.h> 

HAB hab; 
ULONG flOptions = 0L; 
HMQ hmq; 

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

if (hmq) {
          : 
         }

Related Functions

  • WinDestroyMsgQueue
  • WinPostMessage
  • WinSendMessage