123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499 |
- {
- This file is part of the Free Pascal run time library.
- Copyright (c) 2002 by Yuri Prokushev ([email protected]).
- OS/2 Presentation Manager Information Presentation Facility,
- Help Manager declarations.
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************}
- {Warning: This code is alfa. Future versions
- of this unit might not be compatible.}
- unit pmhelp;
- interface
- {$MODE OBJFPC}
- uses
- os2def;
- resourcestring
- msg_failedtodisplay='Failed to display help panel.';
- msg_failedtoload='Failed to load help manager.';
- //************************************************************************/
- //* HelpSubTable entry structure */
- //************************************************************************/
- type
- HelpSubTable=Word;
- PHelpSubTable=^HelpSubTable;
- //************************************************************************/
- //* HelpTable entry structure */
- //* */
- //* Pack the structure HELPTABLE so that it is identical in the 32-Bit */
- //* and 16-Bit world. We have to do this because the HelpTable can */
- //* reside either in memory or in the application's resources. */
- //************************************************************************/
- type
- {$PACKRECORDS 2}
- PHelpTable=^HelpTable;
- HelpTable=record
- idAppWindow: Word;
- phstHelpSubTable: PHelpSubTable;
- idExtPanel: Word;
- End;
- //************************************************************************/
- //* IPF Initialization Structure used on the */
- //* WinCreateHelpInstance() call. */
- //************************************************************************/
- type
- PHelpInit=^HelpInit;
- HelpInit=record
- cb: cardinal;
- ulReturnCode: cardinal;
- pszTutorialName: PChar;
- phtHelpTable: PHelpTable;
- hmodHelpTableModule: cardinal;
- hmodAccelActionBarModule: cardinal;
- idAccelTable: cardinal;
- idActionBar: cardinal;
- pszHelpWindowTitle: PChar;
- fShowPanelId: cardinal;
- pszHelpLibraryName: PChar;
- End;
- //************************************************************************/
- //* Search parent chain indicator for HM_SET_ACTIVE_WINDOW message. */
- //************************************************************************/
- const
- HWnd_Parent = 0;
- //************************************************************************/
- //* Constants used to define whether user wants to display panel using */
- //* panel number or panel name. */
- //************************************************************************/
- const
- HM_ResourceID = 0;
- HM_PanelName = 1;
- HMPanelType_Number =0;
- HMPanelType_Name =1;
- //************************************************************************/
- //* Constants used to define how the panel IDs are displayed on */
- //* help panels. */
- //************************************************************************/
- const
- CMIC_Hide_Panel_ID =$0000;
- CMIC_Show_Panel_ID =$0001;
- CMIC_Toggle_Panel_ID =$0002;
- //************************************************************************/
- //* IPF message base. */
- //************************************************************************/
- const
- HM_Msg_Base =$0220;
- //************************************************************************/
- //* Messages applications can send to the IPF. */
- //************************************************************************/
- const
- HM_Dismiss_Window =HM_Msg_Base+$0001;
- HM_Display_Help =HM_Msg_Base+$0002;
- HM_Ext_Help =HM_Msg_Base+$0003;
- HM_General_Help =HM_Ext_Help;
- HM_Set_Active_Window =HM_Msg_Base+$0004;
- HM_Load_Help_Table =HM_Msg_Base+$0005;
- HM_Create_Help_Table =HM_Msg_Base+$0006;
- HM_Set_Help_Window_Title =HM_Msg_Base+$0007;
- HM_Set_Show_Panel_ID =HM_Msg_Base+$0008;
- HM_Replace_Help_For_Help =HM_Msg_Base+$0009;
- HM_Replace_Using_Help =HM_Replace_Help_For_Help;
- HM_Help_Index =HM_Msg_Base+$000a;
- HM_Help_Contents =HM_Msg_Base+$000b;
- HM_Keys_Help =HM_Msg_Base+$000c;
- HM_Set_Help_Library_Name =HM_Msg_Base+$000d;
- HM_Set_OBJCOM_Window =HM_Msg_Base+$0018;
- HM_Upadte_OBJCOM_Window_Chain =HM_Msg_Base+$0019;
- HM_Query_DDF_Data =HM_Msg_Base+$001a;
- HM_Invalidate_DDF_Data =HM_Msg_Base+$001b;
- HM_Query =HM_Msg_Base+$001c;
- HM_Set_CoverPage_Size =HM_Msg_Base+$001d;
- //************************************************************************/
- //* Constants used to query the info from IPF in HM_QUERY message */
- //************************************************************************/
- //* Hi word in lParam 1 */
- const
- HMQW_COVERPAGE =$0001;
- HMQW_INDEX =$0002;
- HMQW_TOC =$0003;
- HMQW_SEARCH =$0004;
- HMQW_VIEWPAGES =$0005;
- HMQW_LIBRARY =$0006;
- HMQW_VIEWPORT =$0007;
- HMQW_OBJCOM_WINDOW =$0008;
- HMQW_INSTANCE =$0009;
- HMQW_ACTIVEVIEWPORT =$000a;
- CONTROL_SELECTED =$000b;
- HMQW_GROUP_VIEWPORT =$00f1;
- HMQW_RES_VIEWPORT =$00f2;
- USERDATA =$00f3;
- //* Lo word in lParam1 of HMQW_VIEWPORT */
- HMQVP_NUMBER =$0001;
- HMQVP_NAME =$0002;
- HMQVP_GROUP =$0003;
- //************************************************************************/
- //* Predefined Control IDs */
- //************************************************************************/
- const
- CTRL_PREVIOUS_ID =$0001;
- CTRL_SEARCH_ID =$0002;
- CTRL_PRINT_ID =$0003;
- CTRL_INDEX_ID =$0004;
- CTRL_CONTENTS_ID =$0005;
- CTRL_BACK_ID =$0006;
- CTRL_FORWARD_ID =$0007;
- CTRL_TUTORIAL_ID =$00FF;
- CTRL_USER_ID_BASE =257;
- //************************************************************************/
- //* Messages the IPF sends to the applications active window */
- //* as defined by the IPF. */
- //************************************************************************/
- const
- HM_ERROR =HM_Msg_Base+$000e;
- HM_HELPSUBITEM_NOT_FOUND =HM_Msg_Base+$000f;
- HM_QUERY_KEYS_HELP =HM_Msg_Base+$0010;
- HM_TUTORIAL =HM_Msg_Base+$0011;
- HM_EXT_HELP_UNDEFINED =HM_Msg_Base+$0012;
- HM_GENERAL_HELP_UNDEFINED =HM_EXT_HELP_UNDEFINED;
- HM_ACTIONBAR_COMMAND =HM_Msg_Base+$0013;
- HM_INFORM =HM_Msg_Base+$0014;
- HM_NOTIFY =HM_Msg_Base+$0022;
- HM_SET_USERDATA =HM_Msg_Base+$0023;
- HM_CONTROL =HM_Msg_Base+$0024;
- //**********************************************************************/
- //* notify information for HM_NOTIFY */
- //**********************************************************************/
- const
- OPEN_COVERPAGE =$0001;
- OPEN_PAGE =$0002;
- SWAP_PAGE =$0003;
- OPEN_TOC =$0004;
- OPEN_INDEX =$0005;
- OPEN_HISTORY =$0006;
- OPEN_SEARCH_HIT_LIST =$0007;
- OPEN_LIBRARY =$0008;
- HELP_REQUESTED =$0009;
- //**********************************************************************/
- //* HMERR_NO_FRAME_WND_IN_CHAIN - There is no frame window in the */
- //* window chain from which to find or set the associated help */
- //* instance. */
- //**********************************************************************/
- const
- HMERR_NO_FRAME_WND_IN_CHAIN =$00001001;
- //*********************************************************************/
- //* HMERR_INVALID_ASSOC_APP_WND - The application window handle */
- //* specified on the WinAssociateHelpInstance() call is not a valid */
- //* window handle. */
- //*********************************************************************/
- const
- HMERR_INVALID_ASSOC_APP_WND =$00001002;
- //**********************************************************************/
- //* HMERR_INVALID_ASSOC_HELP_INST - The help instance handle specified */
- //* on the WinAssociateHelpInstance() call is not a valid */
- //* window handle. */
- //**********************************************************************/
- const
- HMERR_INVALID_ASSOC_HELP_INST =$00001003;
- //**********************************************************************/
- //* HMERR_INVALID_DESTROY_HELP_INST - The window handle specified */
- //* as the help instance to destroy is not of the help instance class. */
- //**********************************************************************/
- const
- HMERR_INVALID_DESTROY_HELP_INST =$00001004;
- //**********************************************************************/
- //* HMERR_NO_HELP_INST_IN_CHAIN - The parent or owner chain of the */
- //* application window specified does not have a help instance */
- //* associated with it. */
- //**********************************************************************/
- const
- HMERR_NO_HELP_INST_IN_CHAIN =$00001005;
- //**********************************************************************/
- //* HMERR_INVALID_HELP_INSTANCE_HDL - The handle specified to be a */
- //* help instance does not have the class name of a IPF */
- //* help instance. */
- //**********************************************************************/
- const
- HMERR_INVALID_HELP_INSTANCE_HDL =$00001006;
- //*********************************************************************/
- //* HMERR_INVALID_QUERY_APP_WND - The application window specified on */
- //* a WinQueryHelpInstance() call is not a valid window handle. */
- //*********************************************************************/
- const
- HMERR_INVALID_QUERY_APP_WND =$00001007;
- //*********************************************************************/
- //* HMERR_HELP_INST_CALLED_INVALID - The handle of the help instance */
- //* specified on an API call to the IPF does not have the */
- //* class name of an IPF help instance. */
- //*********************************************************************/
- const
- HMERR_HELP_INST_CALLED_INVALID =$00001008;
- HMERR_HELPTABLE_UNDEFINE =$00001009;
- HMERR_HELP_INSTANCE_UNDEFINE =$0000100a;
- HMERR_HELPITEM_NOT_FOUND =$0000100b;
- HMERR_INVALID_HELPSUBITEM_SIZE =$0000100c;
- HMERR_HELPSUBITEM_NOT_FOUND =$0000100d;
- //*********************************************************************/
- //* HMERR_INDEX_NOT_FOUND - No index in library file. */
- //*********************************************************************/
- const
- HMERR_INDEX_NOT_FOUND =$00002001;
- //**********************************************************************/
- //* HMERR_CONTENT_NOT_FOUND - Library file does not have any contents. */
- //**********************************************************************/
- const
- HMERR_CONTENT_NOT_FOUND =$00002002;
- //*********************************************************************/
- //* HMERR_OPEN_LIB_FILE - Cannot open library file */
- //*********************************************************************/
- const
- HMERR_OPEN_LIB_FILE =$00002003;
- //*********************************************************************/
- //* HMERR_READ_LIB_FILE - Cannot read library file */
- //*********************************************************************/
- const
- HMERR_READ_LIB_FILE =$00002004;
- //*********************************************************************/
- //* HMERR_CLOSE_LIB_FILE - Cannot close library file */
- //*********************************************************************/
- const
- HMERR_CLOSE_LIB_FILE =$00002005;
- //*********************************************************************/
- //* HMERR_INVALID_LIB_FILE - Improper library file provided */
- //*********************************************************************/
- const
- HMERR_INVALID_LIB_FILE =$00002006;
- //************************************************************************/
- //* HMERR_NO_MEMORY - Unable to allocate the requested amount of memory. */
- //************************************************************************/
- const
- HMERR_NO_MEMORY =$00002007;
- //*********************************************************************/
- //* HMERR_ALLOCATE_SEGMENT - Unable */
- //* to allocate a segment of memory for memory allocation requested */
- //* from the IPF. */
- //*********************************************************************/
- const
- HMERR_ALLOCATE_SEGMENT =$00002008;
- //*********************************************************************/
- //* HMERR_FREE_MEMORY - Unable to free allocated memory */
- //*********************************************************************/
- const
- HMERR_FREE_MEMORY =$00002009;
- //*********************************************************************/
- //* HMERR_PANEL_NOT_FOUND - Unable */
- //* to find a help panel requested to help manager */
- //*********************************************************************/
- const
- HMERR_PANEL_NOT_FOUND =$00002010;
- //*********************************************************************/
- //* HMERR_DATABASE_NOT_OPEN - Unable to read the unopened database */
- //*********************************************************************/
- const
- HMERR_DATABASE_NOT_OPEN =$00002011;
- //*********************************************************************/
- //* HMERR_DDL_ERROR - Unable to load resource dll */
- //*********************************************************************/
- const
- HMERR_LOAD_DLL =$00002013;
- //********************************************************************/
- //* AC Viewport stucture definitions */
- //********************************************************************/
- type
- PACVP=^ACVP;
- ACVP=record
- cb: cardinal;
- hAB: HAB;
- hmq: HMQ;
- ObjectID: cardinal; // object identifier
- hWndParent: HWND; // IPF viewport client handle
- hWndOwner: HWND; // IPF viewport client handle
- hWndACVP: HWND; // applications frame window hwnd
- end;
- //*******************************************************************/
- //* Define Handle to DDF */
- //*******************************************************************/
- Type
- HDDF=pointer;
- // DdfHyperText Flags
- const
- REFERENCE_BY_ID =0;
- REFERENCE_BY_RES =1;
- // DdfBeginList formatting flags
- HMBT_NONE =1;
- HMBT_ALL =2;
- HMBT_FIT =3;
- HMLS_SINGLELINE =1;
- HMLS_DOUBLELINE =2;
- // DdfBitmap alignment flags
- ART_RUNIN =$10;
- ART_LEFT =$01;
- ART_RIGHT =$02;
- ART_CENTER =$04;
- // DdfSetColor Color Flag
- CLR_UNCHANGED =-6;
- //*******************************************************************/
- // error codes returned by DDF API functions */
- //*******************************************************************/
- const
- HMERR_DDF_MEMORY =$3001;
- HMERR_DDF_ALIGN_TYPE =$3002;
- HMERR_DDF_BACKCOLOR =$3003;
- HMERR_DDF_FORECOLOR =$3004;
- HMERR_DDF_FONTSTYLE =$3005;
- HMERR_DDF_REFTYPE =$3006;
- HMERR_DDF_LIST_UNCLOSED =$3007;
- HMERR_DDF_LIST_UNINITIALIZED =$3008;
- HMERR_DDF_LIST_BREAKTYPE =$3009;
- HMERR_DDF_LIST_SPACING =$300A;
- HMERR_DDF_HINSTANCE =$300B;
- HMERR_DDF_EXCEED_MAX_LENGTH =$300C;
- HMERR_DDF_EXCEED_MAX_INC =$300D;
- HMERR_DDF_INVALID_DDF =$300E;
- HMERR_DDF_FORMAT_TYPE =$300F;
- HMERR_DDF_INVALID_PARM =$3010;
- HMERR_DDF_INVALID_FONT =$3011;
- HMERR_DDF_SEVERE =$3012;
- //************************************************************************/
- //* Window Help API declarations. */
- //************************************************************************/
- function WinDestroyHelpInstance(hwndHelpInstance: HWND): Longbool; cdecl;
- function WinCreateHelpInstance(ahab: HAB; var phinitHMInitStructure: HELPINIT): HWND; cdecl;
- function WinAssociateHelpInstance(hwndHelpInstance, hwndApp: HWND): Longbool; cdecl;
- function WinQueryHelpInstance(hwndApp: HWND): HWND; cdecl;
- function WinLoadHelpTable(hwndHelpInstance: HWND; idHelpTable: cardinal; Module: cardinal): Longbool; cdecl;
- function WinCreateHelpTable(hwndHelpInstance: HWND; var phtHelpTable: HELPTABLE): Longbool; cdecl;
- function DdfInitialize(hwndHelpInstance: HWND; cbBuffer, ulIncrement: cardinal): HDDF; cdecl;
- function DdfPara(ahddf: HDDF):Longbool; cdecl;
- function DdfSetFormat(ahddf: HDDF; fFormatType: cardinal): Longbool; cdecl;
- function DdfSetTextAlign(ahddf: HDDF; fAlign: cardinal): Longbool; cdecl;
- function DdfSetColor(ahddf: HDDF; fBackColor, fForColor: Longint): Longbool; cdecl;
- function DdfInform(ahddf: HDDF; var pszText: PChar; resInformNumber: cardinal): Longbool; cdecl;
- function DdfSetFontStyle(ahddf: HDDF; fFontStyle: cardinal): Longbool; cdecl;
- function DdfHyperText(ahddf: HDDF; var pszText, pszReference: PChar; fReferenceType: cardinal): Longbool; cdecl;
- function DdfBeginList(ahddf: HDDF; ulWidthDT, fBreakType, fSpacing: cardinal): Longbool; cdecl;
- function DdfListItem(ahddf: HDDF; var pszTerm, pszDescription: PChar): Longbool; cdecl;
- function DdfEndList(ahddf: HDDF): Longbool; cdecl;
- function DdfMetafile(ahddf: HDDF; ahmf: cardinal; var prclRect: RECTL): Longbool; cdecl;
- function DdfText(ahddf: HDDF; var pszText: PChar): Longbool; cdecl;
- function DdfSetFont(ahddf: HDDF; var pszFaceName: PChar; ulWidth, ulHeight: cardinal): Longbool; cdecl;
- function DdfBitmap(ahddf: HDDF; hbm: HBITMAP; fAlign: cardinal): Longbool; cdecl;
- implementation
- const
- HELPMGRDLL='HELPMGR';
- function WinDestroyHelpInstance(hwndHelpInstance: HWND): Longbool; cdecl;
- external HELPMGRDLL index 52;
- function WinCreateHelpInstance(ahab: HAB; var phinitHMInitStructure: HELPINIT): HWND; cdecl;
- external HELPMGRDLL index 51;
- function WinAssociateHelpInstance(hwndHelpInstance, hwndApp: HWND): Longbool; cdecl;
- external HELPMGRDLL index 54;
- function WinQueryHelpInstance(hwndApp: HWND): HWND; cdecl;
- external HELPMGRDLL index 53;
- function WinLoadHelpTable(hwndHelpInstance: HWND; idHelpTable: cardinal; Module: cardinal): Longbool; cdecl;
- external HELPMGRDLL index 55;
- function WinCreateHelpTable(hwndHelpInstance: HWND; var phtHelpTable: HELPTABLE): Longbool; cdecl;
- external HELPMGRDLL index 56;
- function DdfInitialize(hwndHelpInstance: HWND; cbBuffer, ulIncrement: cardinal): HDDF; cdecl;
- external HELPMGRDLL index 74;
- function DdfPara (ahddf: HDDF): Longbool; cdecl;
- external HELPMGRDLL index 75;
- function DdfSetFormat(ahddf: HDDF; fFormatType: cardinal): Longbool; cdecl;
- external HELPMGRDLL index 76;
- function DdfSetTextAlign (ahddf: HDDF; fAlign: cardinal): Longbool; cdecl;
- external HELPMGRDLL index 77;
- function DdfSetColor(ahddf: HDDF; fBackColor, fForColor: Longint): Longbool; cdecl;
- external HELPMGRDLL index 78;
- function DdfInform(ahddf: HDDF; var pszText: PChar; resInformNumber: cardinal): Longbool; cdecl;
- external HELPMGRDLL index 79;
- function DdfSetFontStyle(ahddf: HDDF; fFontStyle: cardinal): Longbool; cdecl;
- external HELPMGRDLL index 80;
- function DdfHyperText(ahddf: HDDF; var pszText, pszReference: PChar; fReferenceType: cardinal): Longbool; cdecl;
- external HELPMGRDLL index 81;
- function DdfBeginList(ahddf: HDDF; ulWidthDT, fBreakType, fSpacing: cardinal): Longbool; cdecl;
- external HELPMGRDLL index 82;
- function DdfListItem(ahddf: HDDF; var pszTerm, pszDescription: PChar): Longbool; cdecl;
- external HELPMGRDLL index 83;
- function DdfEndList(ahddf: HDDF): Longbool; cdecl;
- external HELPMGRDLL index 84;
- function DdfMetafile(ahddf: HDDF; ahmf: cardinal; var prclRect: RECTL): Longbool; cdecl;
- external HELPMGRDLL index 86;
- function DdfText(ahddf: HDDF; var pszText: PChar): Longbool; cdecl;
- external HELPMGRDLL index 85;
- function DdfSetFont(ahddf: HDDF; var pszFaceName: PChar; ulWidth, ulHeight: cardinal): Longbool; cdecl;
- external HELPMGRDLL index 87;
- function DdfBitmap(ahddf: HDDF; hbm: HBITMAP; fAlign: cardinal): Longbool; cdecl;
- external HELPMGRDLL index 88;
- end.
|