Jump to content

DdfSetFormat

From EDM2


This function is used to turn formatting off or on, corresponding to the `:lines.` tag.

Syntax

DdfSetFormat(hddf, fFormatType)

Parameters

hddf (HDDF) - input
Handle to DDF returned by DdfInitialize.
fFormatType (ULONG) - input
Formatting-activation flag. Only the following constants may be used:
  • TRUE - Turn formatting on
  • FALSE - Turn formatting off
rc (BOOL) - returns
Success indicator.

Returns

rc (BOOL) - returns
Success indicator.
TRUE Successful completion
FALSE Error occurred

Remarks

Declaration:

#define INCL_DDF
#include <os2.h>

HDDF     hddf;         /*  Handle to DDF returned by DdfInitialize. */
ULONG    fFormatType;  /*  Formatting-activation flag. */
BOOL     rc;           /*  Success indicator. */

rc = DdfSetFormat(hddf, fFormatType);

If formatting is ON, there is a 3-byte ESC code overhead in the DDF internal buffer for this function. Otherwise, there is a 4-byte ESC code overhead.

Possible errors include:

  • HMERR_DDF_MEMORY (0x3001) Not enough memory is available.

Example Code

After initializing a DDF buffer with DdfInitialize, this example uses `DdfSetTextAlign` to specify left-justified text in the DDF buffer when formatting is OFF. It then uses `DdfSetFormat` to turn off formatting for text in the DDF buffer (corresponding to the IPF `lines` tag).

For a more detailed example and discussion of initializing DDF, see the DdfInitialize sample.

#define INCL_WINWINDOWMGR       /* General window management    */
#define INCL_WINMESSAGEMGR      /* Message management           */
#define INCL_GPIPRIMITIVES      /* Drawing Primitives/Attributes*/
#define INCL_DDF                /* Dynamic Data Facility        */
#include <os2.h>
#include <pmhelp.h>

MRESULT WindowProc(HWND hwnd, ULONG ulMsg, MPARAM mp1, MPARAM mp2)
{
    HWND   hwndParent;
    HWND   hwndInstance;    /* help instance window                 */
    HDDF   hDdf;            /* DDF handle                           */

    switch (ulMsg)
    {
    case HM_QUERY_DDF_DATA:
        /* get the help instance */
        hwndParent = WinQueryWindow(hwnd, QW_PARENT);
        hwndParent = WinQueryWindow(hwndParent, QW_PARENT);
        hwndInstance = (HWND)WinSendMsg(hwndParent, HM_QUERY,
                                        MPFROMSHORT(HMQW_INSTANCE), NULL);

        /* Allocate 1K Buffer (default) */
        hDdf = DdfInitialize(
                    hwndInstance,  /* Handle of help instance */
                    0L,            /* Default buffer size     */
                    0L             /* Default increment       */
                    );

        if (hDdf == NULLHANDLE)       /* Check return code */
        {
            return (MRESULT)FALSE;
        }

        /* left justify text when formatting is OFF */
        if (!DdfSetTextAlign(hDdf, TA_LEFT))
        {
            return (MRESULT)FALSE;
        }

        /* turn formatting OFF */
        if (!DdfSetFormat(hDdf, FALSE))
        {
            return (MRESULT)FALSE;
        }

        if (!DdfText(hDdf, "Format OFF: This text should be Left Aligned!\n"))
        {
            return (MRESULT)FALSE;
        }

        return (MRESULT)hDdf;
    }
    return WinDefWindowProc(hwnd, ulMsg, mp1, mp2);
}

Related Functions