Jump to content

WinCreateAtomTable

From EDM2
Revision as of 02:37, 13 May 2023 by Martini (talk | contribs) (Created page with "This function creates an accelerator table from the accelerator definitions in memory. ==Syntax== WinCreateAccelTable(hab, pacctAccelTable) ==Parameters== ; hab (HAB) - in...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This function creates an accelerator table from the accelerator definitions in memory.

Syntax

WinCreateAccelTable(hab, pacctAccelTable)

Parameters

hab (HAB) - input
Anchor-block handle.
pacctAccelTable (PACCELTABLE) - input
Accelerator table.

Returns

haccelhAccel (HACCEL) - returns
Accelerator-table handle.

Remarks

This function returns a different haccelhAccel value when called twice in succession with the same parameter values.

Example Code

This example creates an accelerator-table handle for an in memory accelerator table consisting of 3 accelerator keys, using US codepage 437.

#define INCL_WINACCELERATORS    /* Window Accelerator Functions */
#define INCL_WININPUT           /* Key constants                */
#define INCL_WINFRAMEMGR        /* Frame control constants      */
#include <os2.h>

ULONG        ulAccelLen      = 0;          /* Accelerator-table length      */
HACCEL       hAccel          = NULLHANDLE; /* Accelerator-table handle      */
PACCELTABLE  pacctAccelTable = NULL;       /* Pointer to Accelerator-tab le */
HAB          hab             = NULLHANDLE; /* Anchor block handle           */

ACCEL   acctable[] = {
         AF_SYSCOMMAND | AF_ALT | AF_VIRTUALKEY,VK_F7,SC_MOVE,
         AF_SYSCOMMAND | AF_ALT | AF_VIRTUALKEY,VK_F8,SC_SIZE,
         AF_SYSCOMMAND | AF_ALT | AF_VIRTUALKEY,VK_F12,SC_CLOSE};

        /* Get memory for the Accelerator-table and initialize it. */

  ulAccelLen = sizeof( acctable ) + sizeof( ACCELTABLE );
  pacctAccelTable = (PACCELTABLE) malloc ( ulAccelLen );

  pacctAccelTable->cAccel = 3;                 /* Number of ACCEL entries */
  pacctAccelTable->codepage = 437;             /* Code page */
  pacctAccelTable->aaccel[0] = acctable[0];    /* ACCEL entries... */
  pacctAccelTable->aaccel[1] = acctable[1];
  pacctAccelTable->aaccel[2] = acctable[2];

  hAccel = WinCreateAccelTable( hab, pacctAccelTable );

Definition

#define INCL_WINACCELERATORS /* Or use INCL_WIN, INCL_PM, */
#include <os2.h>

HAB            hab;              /*  Anchor-block handle. */
PACCELTABLE    pacctAccelTable;  /*  Accelerator table. */
HACCEL         haccelhAccel;     /*  Accelerator-table handle. */

haccelhAccel = WinCreateAccelTable(hab, pacctAccelTable);

Related Functions

  • WinCopyAccelTable
  • WinDestroyAccelTable
  • WinLoadAccelTable
  • WinQueryAccelTable
  • WinSetAccelTable
  • WinTranslateAccel