OWL WinHelp für OS/2 |
Eine WinHelp()-Funktion für OS/2
In der OWL für OS/2 ist die Hilfe leider nicht mehr realisiert worden.
Die Header liegen unvollständig vor und die Funktion TWindow::WinHelp()
ist nicht realisiert.
Beides ist kein großer Aufwand. In der PMWINDOW.H:
#define HELP_CONTEXT 0x223 // HM_EXT_HELP (oder HM_KEYS_HELP?) #define HELP_QUIT 0x231 // special handling for OS/2 #define HELP_INDEX 0x22a // HM_HELP_INDEX #define HELP_CONTENTS 0x22b // HM_HELP_CONTENTS #define HELP_HELPONHELP 0x22f #define HELP_SETINDEX 0x #define HELP_SETCONTENTS 0x #define HELP_CONTEXTPOPUP 0x #define HELP_FORCEFILE 0x #define HELP_KEY 0x22c // HM_HELP_KEYS #define HELP_COMMAND 0x #define HELP_PARTIALKEY 0x230 // HM_HELP_INDEX #define HELP_MULTIKEY 0x232 #define HELP_SETWINPOS 0x
Die Funktion TWindows::WinHelp muß geschrieben werden:
/* Ergaenzung der OS/2-OWL um die WinHelp-Funktion. * wurde leider von Borland vollstaendig weggelassen. * * (C) Arnold Willemer 1996 */ // Verbindung zur OS/2 Hilfe schlagen #define INCL_WINHELP #include// Einbindung in die TWindow-Klasse von OWL #include // gibt es eine Hilfe? Wenn nicht, initialisieren. Dann ist HwndHilfe das Handle des Help-Kontexts static HWND HwndHilfe = 0; // Windows sendet HELP_QUIT und gut. OS/2 macht eine richtige Abmeldung des Help-Kontexts static void CloseHelp(void) { // Hilfe freigeben WinDestroyHelpInstance(HwndHilfe); HwndHilfe = 0; } // Ergaenze die TWindow-Klasse um WinHelp BOOL TWindow ::WinHelp(const char * helpFile, unsigned int command, unsigned long data) { HELPINIT HelpInit; if (HwndHilfe==0) { // Initialierung der Hilfe HelpInit.cb = sizeof(HELPINIT); HelpInit.pszTutorialName=0; HelpInit.phtHelpTable=(PHELPTABLE)MAKEULONG(1,0xFFFF); // wer sollte das sein? HelpInit.hmodHelpTableModule=0; HelpInit.hmodAccelActionBarModule=0; HelpInit.idAccelTable=0; HelpInit.idActionBar=0; HelpInit.pszHelpWindowTitle="Hilfe"; HelpInit.fShowPanelId=CMIC_HIDE_PANEL_ID; HelpInit.pszHelpLibraryName=(char *)helpFile; HwndHilfe = WinCreateHelpInstance(::WinQueryAnchorBlock(HWindow), &HelpInit); if (HwndHilfe && (HelpInit.ulReturnCode==0)) { WinAssociateHelpInstance(HwndHilfe, Parent->HWindow); } else if (command!=HELP_QUIT) { char message[80]; sprintf(message, "Hilfesystem nicht ok (%d)", HelpInit.ulReturnCode); WinMessageBox(HWND_DESKTOP, HWindow, message, "Achtung", 0, MB_NOICON|MB_OK); } } // if (HwndHilfe==0) // Absetzen der Nachricht switch (command) { case HELP_HELPONHELP: WinSendMsg(HwndHilfe, HM_DISPLAY_HELP, 0, 0); // causes Using Help break; case HELP_KEY: WinSendMsg(HwndHilfe, HM_DISPLAY_HELP, (char *)data, (void *)HM_PANELNAME); break; case HELP_PARTIALKEY: // fhrt unter Windows zum Suchen case HELP_INDEX: WinSendMsg(HwndHilfe, HM_HELP_INDEX, (void *)0, (void *)0); break; case HELP_CONTENTS: WinSendMsg(HwndHilfe, HM_HELP_CONTENTS, (void *)0, (void *)0); break; case HELP_QUIT: CloseHelp(); break; case HELP_CONTEXT: char Msg[80]; sprintf(Msg, "Kontext-Nr %d", data); WinMessageBox(HWND_DESKTOP, HWindow, Msg, "HELP_CONTEXT", 0, MB_OK); break; default: WinMessageBox(HWND_DESKTOP, HWindow, "no help type realized by owl", "Sorry", 0, MB_OK); break; } }
Homepage - OWL-Index | 22.9.2001 (C) Copyright 1999, 2001 Arnold Willemer |