wpSaveImmediate - Example Code

MRESULT EXPENTRY MyDialogProc   ( HWND hwndDlg, ULONG msg
                                , MPARAM mp1,   MPARAM mp2 )
{
    SOMAny  *somSelf;      /* Temporary ptr to object instance          */
    PWINDATA pwin;         /* Window data                               */
    PSZ      psz;          /* User title to manipulate                  */
    HWND     hwndEntry;    /* Window handle                             */
    CHAR     buf[30];      /* Buffer                                    */

    switch( msg )
    {
        case WM_INITDLG:

            somSelf = (SOMAny *) mp2;   /* obtain creation parms */

            pwin = (PWINDATA) _wpAllocMem ( somSelf, sizeof (WINDATA), NULL );

            WinSetWindowPtr (hwndDlg, QWL_USER, pwin );

            /* Initialize the windata structure */
            pwin->somSelf     = somSelf;
            pwin->somClassObj = _somGetClass ( pwin->somSelf );

            /* query title string from instance data, and fill  */
            /* entryfield with the string                       */

            psz = _UserGetTitle ( pwin->somSelf );

            hwndEntry = WinWindowFromID ( hwndDlg, DLG_ENTRYFIELD );

            WinSetWindowText ( hwndEntry, psz );

            WinSetFocus      ( HWND_DESKTOP, hwndEntry );

            /* return TRUE to tell PM that we changed focus */
            return (MRESULT) TRUE ;

        case WM_DESTROY:

            pwin = (PWINDATA) WinQueryWindowPtr ( hwndDlg, QWL_USER );

            /* Save entryfield data to instance fields */
            hwndEntry = WinWindowFromID ( hwndDlg, DLG_ENTRYFIELD);

            WinQueryWindowText ( hwndEntry, sizeof (buf), (PCH) &buf );

            /* Save entryfield data to instance data */
            _UserSetTitle ( pwin->somSelf, (PSZ) &buf );

            /* Save instance data to OS2.INI file *now* */
            _wpSaveImmediate ( pwin -> somSelf );

            _wpFreeMem( pwin->somSelf,(PBYTE) pwin );
            return ( WinDefDlgProc( hwndDlg, msg, mp1, mp2 ) );
    }
    return ( WinDefDlgProc( hwndDlg, msg, mp1, mp2 ) );
}


[Back: wpSaveImmediate - Related Methods]
[Next: wpSaveImmediate - Topics]