home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddfmek.zip / HELP.C next >
Text File  |  1993-03-18  |  4KB  |  119 lines

  1. #include "help.h"
  2.  
  3. #define IDHT_APPLICATION        100     /* id of HELP TABLE in resource file */
  4.  
  5. /* GLOBAL DATA */
  6. HAB  hab;
  7. HWND hwndHelp;
  8. HELPTABLE ht = {IDHT_APPLICATION, NULL, 0};
  9. CHAR szClassName[] = "Dummy"; /* window class name            */
  10.  
  11. /* PROTOTYPES */                         
  12. MRESULT EXPENTRY DummyWndProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
  13.  
  14. main( int argc, char *argv[], char *envp[] )
  15. {
  16.    HMQ  hmq;
  17.    HWND hwnd;
  18.    HWND hwndClient;
  19.    QMSG qmsg;
  20.    ULONG flStyle;
  21.    HELPINIT helpinit;
  22.    HWND hwndFrame;         /* handle to the frame                  */
  23.    HMODULE hmod;
  24.    CHAR szBuf[80];
  25.  
  26.    hab = WinInitialize( 0 );
  27.    hmq = WinCreateMsgQueue( hab, 0 );
  28.  
  29.    flStyle = FCF_STANDARD & (~ (FCF_MENU | FCF_ICON | FCF_ACCELTABLE));
  30.    WinRegisterClass(hab, szClassName, DummyWndProc, 0L, 0);
  31.  
  32.    hwndFrame = WinCreateStdWindow(HWND_DESKTOP,
  33.          WS_VISIBLE,             /* frame-window style            */
  34.          &flStyle,               /* window style                  */
  35.          szClassName,            /* class name                    */
  36.          "Click in window to get Help",    /* window title                  */
  37.          0L,                     /* default client style          */
  38.          NULLHANDLE,             /* resource in executable file   */
  39.          IDHT_APPLICATION,           /* resource id                   */
  40.          &hwndClient);           /* receives client window handle */
  41.  
  42.    /* Setup the help initialization structure */
  43.    helpinit.cb = sizeof( HELPINIT );
  44.    helpinit.ulReturnCode =  0L;
  45.    helpinit.pszTutorialName =  (PSZ)NULL;
  46.    /* Help table  */
  47.    helpinit.phtHelpTable = &ht;
  48.    helpinit.hmodHelpTableModule = NULLHANDLE;
  49.    /* Default action bar and accelerators */
  50.    helpinit.hmodAccelActionBarModule = NULLHANDLE;
  51.    helpinit.idAccelTable = 0;
  52.    helpinit.idActionBar = 0;
  53.    helpinit.pszHelpWindowTitle = "Ddf Test";
  54.    helpinit.fShowPanelId = CMIC_SHOW_PANEL_ID;
  55.    helpinit.pszHelpLibraryName = "HELP.HLP";
  56.    hwndHelp = WinCreateHelpInstance( hab, &helpinit );
  57.    WinAssociateHelpInstance(hwndHelp, hwndFrame);
  58.  
  59.    /* get and dispatch messages from queue */
  60.    while (WinGetMsg(hab, &qmsg, 0, 0, 0))
  61.       WinDispatchMsg(hab, &qmsg);
  62.  
  63.    /* finish the cleanup and exit */
  64.    WinAssociateHelpInstance(NULLHANDLE, hwndFrame);
  65.    WinDestroyHelpInstance( hwndHelp );
  66.    WinDestroyWindow( hwndFrame );
  67.    WinDestroyMsgQueue( hmq );
  68.    WinTerminate( hab );
  69. }
  70.  
  71.  
  72. MRESULT EXPENTRY DummyWndProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
  73. {
  74.    HWND hwndPanel;
  75.    INT i;
  76.    LONG lb;
  77.    ULONG ul;
  78.    PVOID pfn;
  79.    CLASSINFO clsi;
  80.    HPS hps;
  81.    RECTL  rcl;             /* update region                        */
  82.    USHORT id;
  83.    CHAR sz[80];
  84.  
  85.    switch (msg) {
  86.  
  87.    case WM_PAINT:
  88.       hps = WinBeginPaint(hwnd,   /* handle of the window      */
  89.           NULLHANDLE,             /* get a cache presentation space */
  90.           &rcl);                  /* receives update rectangle  */
  91.       WinFillRect(hps, &rcl, CLR_GREEN);
  92.       WinEndPaint(hps);
  93.       return 0L;
  94.       break;
  95.    
  96.    case WM_BUTTON1CLICK:
  97.       /* bring up contents */
  98.       WinSendMsg(hwndHelp, HM_HELP_CONTENTS, 0, 0);
  99.       return (MRESULT) 0;
  100.  
  101.    case HM_QUERY_DDF_DATA:
  102.       return (MRESULT) Ddf(HWNDFROMMP(mp1), LONGFROMMP(mp2));
  103.  
  104.    case HM_INFORM:
  105.       sprintf(sz, "Inform message was received, ID = %u (SHORT2 = %u, "
  106.             "MP2SHORT1 = %u, MP2SHORT2 = %u)",
  107.             SHORT1FROMMP(mp1), SHORT2FROMMP(mp1),
  108.             SHORT1FROMMP(mp2), SHORT2FROMMP(mp2));
  109.       WinMessageBox(HWND_DESKTOP, hwnd, sz, "Inform", 0, MB_OK);
  110.       return (MRESULT) 0;
  111.  
  112.    default:
  113.       return WinDefWindowProc(hwnd, msg, mp1, mp2);
  114.  
  115.    } /* endswitch */
  116. }
  117.  
  118.  
  119.