home *** CD-ROM | disk | FTP | other *** search
- /************ GRAPHIC C Sample Program Header File (.H) ******************
- * Copyright (C) 1991, 1993 IBM Corporation
- *
- * DISCLAIMER OF WARRANTIES. The following [enclosed] code is
- * sample code created by IBM Corporation. This sample code is not
- * part of any standard or IBM product and is provided to you solely
- * for the purpose of assisting you in the development of your
- * applications. The code is provided "AS IS", without
- * warranty of any kind. IBM shall not be liable for any damages
- * arising out of your use of the sample code, even if they have been
- * advised of the possibility of such damages. *
- ******************************************************************************/
-
- /* Macros */
-
- #define DRIVERNAME_LENGTH 128
- #define DESCRIPTION_LENGTH 64
-
- #define LOGOTIME_APPLNAME "PM_ControlPanel"
- #define LOGOTIME_KEYNAME "LogoDisplayTime"
-
- #define STACK_SIZE 8192
-
- #define MSGBOXID 222 /* message box id */
-
- #define HELP_FILE "GRAPHIC.HLP"
-
- #define MAXSTRLEN 200
-
- #define WM_USER_DEFINED_CODE (WM_USER + 1)
- #define WM_USER_END_ON_ERROR (WM_USER + 2)
-
- #define STOP_THREAD (WM_USER + 3)
- #define SET_TRANSFORM (WM_USER + 4)
- #define DRAW_ORDERS (WM_USER + 5)
- #define SIZING (WM_USER + 6)
- #define DUMMY_COMMAND (WM_USER + 7)
- #define FLUSH_COMMAND (WM_USER + 8)
- #define STOP_DRAWING (WM_USER + 9)
- #define SET_PRINT_STATUS (WM_USER + 10)
- #define DRAW_GPI (WM_USER + 12)
- #define DRAW_META (WM_USER + 13)
- #define ENABLE_INFO_WND (WM_USER + 14)
- #define POS_INFO_WND (WM_USER + 15)
- #define ACTIVATE_DRAW_THREAD (WM_USER + 16)
- #define DISPLAY_MESSAGE (WM_USER + 17)
-
- #define DEVINFOSIZE 39
-
- #define DRAW_OK GPI_OK
- #define DRAW_STOPPED 2
-
- #define CHECK_ITEM 0x0001
- #define INIT_MLE 0x0003
-
- #define ALLOC_STRING 1
- #define STATIC_STRING 0
-
- /* Structure-Definitions */
-
- typedef struct _PRTTXT_DATA {
- PSZ *Text;
- CHAR QueueName[12];
- CHAR DriverName[DRIVERNAME_LENGTH];
- PVOID DriverData; /* Driver-Data for DevOpenDC */
- HWND hWndFrame;
- CHAR Jobname[8];
- } PRTTXT_DATA;
- typedef PRTTXT_DATA *PPRTTXT_DATA;
-
- /* Structure for saving defaults */
- typedef struct _PPL_DEFAULTS {
- ULONG cy;
- ULONG cx;
- CHAR DriverName[DRIVERNAME_LENGTH];
- } APPL_DEFAULTS;
- typedef APPL_DEFAULTS *PAPPL_DEFAULTS;
-
- typedef struct _RESOLUTION {
- LONG x;
- LONG y;
- } RESOLUTION;
- typedef RESOLUTION *PRESOLUTION;
-
- /* Draw Parameter */
- typedef struct _DRAW_PARM {
- RECTL rclBounds; /* Bounding rectangle of the picture */
- BOOL fAllValid; /* hrgnInvalid is empty */
- BOOL fDrawing; /* Asynchronous thread can draw */
- HRGN hrgnInvalid; /* Region used for accumulating */
- /* invalid regions in the */
- /* client area */
- HMF hmfPicture;
- HAB hABDraw;
- } DRAW_PARM;
- typedef DRAW_PARM *PDRAW_PARM;
-
- /* Info window structure */
- typedef struct _INFO_STRUC {
- HWND hWnd;
- BOOL EnableWindow;
- BOOL Enabled;
- LONG SizeX;
- LONG SizeY;
- LONG DrawLine;
- } INFO_STRUC;
-
- /* Main Parameter-Structure */
- typedef struct _MAIN_PARM {
- HAB hAB;
- PSZ ProgramTitle;
- HWND hWndFrame;
- HWND hWndGRAPHICHelp; /* Handle to Help window */
- HWND hWndClient;
- HMQ hMQPrint;
- HMQ hMQ;
- HMQ hMQDraw;
- HPS hpsPrint;
- HPS hpsPaint; /* Presentation space for use */
- /* on the main thread */
- HPS hpsClient; /* Client-area graphics */
- TID DrawThreadID;
- TID PrintThreadID;
- HEV hevsemPrintEnds;
- HEV hevsemTerminate;
- HEV hevsemStop;
- HDC hdcClient; /* Window device-context handle */
- HDC hdcPrinter;
- HMTX hmtxsemStoppable; /* Mutex semaphore "Stoppable" */
- HPOINTER hptrGlass;
- HPOINTER hptrArrow;
- PTIB ptibMain; /* Main thread and process IDs */
- PPIB ppibMain; /* Main thread and process IDs */
- CHAR ErrorMsg[200];
- CHAR QueueName[12];
- CHAR DriverName[DRIVERNAME_LENGTH];
- CHAR MetafilePath[200];
- CHAR Message[200];
- PVOID DriverData; /* Driver-Data for DevOpenDC */
- LONG CheckedItem;
- ULONG DriverDataLength; /* Length of DriverData */
- BOOL PrintStatus; /* flag set while printing */
- BOOL PrintEnabled;
- BOOL PrintPropertiesEnabled;
- BOOL fNotReady; /* Let the system handle */
- /* client-area painting */
- BOOL fStoppable; /* Asynchronous thread is */
- /* stoppable */
- BOOL DrawThreadActivated;
- BOOL ResizeWindow;
- BOOL fWaiting; /* The main thread cannot */
- /* issue GpiSetStopDraw */
- BOOL fBusy;
- DRAW_PARM DrawParm;
- INFO_STRUC InfoWnd;
- } MAIN_PARM;
- typedef MAIN_PARM *PMAIN_PARM;
-
- /* Structure for Queue-Selection */
- typedef struct _QUEUE_SEL {
- CHAR QueueName[12];
- CHAR DriverName[DRIVERNAME_LENGTH];
- CHAR QueueDescription[DESCRIPTION_LENGTH];
- PVOID DriverData; /* Pointer to Driver Data ptr */
- ULONG DriverDataLength; /* Length of DriverData */
- } QUEUE_SEL;
- typedef QUEUE_SEL *PQUEUE_SEL;
-
- /* Parameter-Structure for Printer Selection Dialog */
- typedef struct _PRINTER_SEL_PARM {
- ULONG ulLen; /* length of structure */
- ULONG ulType; /* reserved, must be NULL */
- PQUEUE_SEL QueueSelTable; /* Queue Selection Table */
- ULONG QueuesCount; /* Entries in Table */
- LONG SelectedItem; /* Selected item, -1 = none */
- LONG SaveSelectedItem; /* Selected item, -1 = none */
- HAB hAB; /* handle anchor block */
- } PRINTER_SEL_PARM;
- typedef PRINTER_SEL_PARM *PPRINTER_SEL_PARM;
-
- /* Function Prototypes */
- MRESULT EXPENTRY WndProc(HWND hWnd,
- ULONG message,
- MPARAM mp1,
- MPARAM mp2);
-
- MRESULT EXPENTRY WndProcI(HWND hWndI,
- ULONG Msg,
- MPARAM mp1,
- MPARAM mp2);
- extern VOID DispErrorMsg(HAB hab,
- HWND hwndFrame,
- PCH FileName,
- LONG LineNum);
- #define DispError(a,b) DispErrorMsg(a,b,(PCH)__FILE__,(LONG)__LINE__)
-
- VOID CheckPulldown(PMAIN_PARM,
- LONG);
- BOOL Initialize(VOID);
- VOID ReportError(VOID);
- VOID EndProgram(VOID);
- VOID AdjustWindowSize(PMAIN_PARM);
- VOID DrawThread(PMAIN_PARM);
- VOID PrintThread(PMAIN_PARM);
-
- BOOL SendCommand(PMAIN_PARM,
- ULONG,
- ULONG);
- MRESULT WndProcCreate(HWND hwnd,
- PMAIN_PARM Parm);
- VOID SetPrintItems(PMAIN_PARM Parm);
- VOID SetTransform(PMAIN_PARM Parm,
- MPARAM mp1);
- MRESULT WndProcPaint(PMAIN_PARM Parm);
- VOID Transform(PDRAW_PARM Parm,
- HPS hpsXForm,
- PRECTL prclXform);
- LONG DoDraw(HPS hpsDraw,
- PDRAW_PARM Parm,
- HRGN rgn,
- HPS InfoWnd);
- BOOL Circles(HPS hpsDraw,
- PPOINTL pptlCur,
- FIXED fxSize);
- VOID StopDrawing(PMAIN_PARM Parm);
- VOID PrintGpiMeta(PMAIN_PARM Parm,
- ULONG Message);
- VOID DisplayMessage(HWND hwndDraw,
- PSZ Message);
- VOID SetTitleBarText(PMAIN_PARM Parm,
- PSZ Filename);
- PSZ GetString(HAB hAB,
- ULONG ID,
- BOOL Alloc);
- PSZ StringWithVarText(HAB hAB,
- ULONG ID,
- PSZ VarText,
- PSZ Result);
- VOID DisplayHelpPanel(SHORT idPanel);
- BOOL OpenFileDialog(HWND hwndOwner,
- PSZ pszTitle,
- PSZ pszFileExt,
- PSZ pszFilename);
- MRESULT EXPENTRY AboutDlg(HWND,
- USHORT,
- MPARAM,
- MPARAM);
- MRESULT EXPENTRY TemplateOpenFilterProc(HWND hwnd,
- ULONG msg,
- MPARAM mp1,
- MPARAM mp2);
- extern BOOL QueryPrinterQueue(HAB hAB,
- HWND hWnd,
- PVOID *DriverData,
- PULONG DriverDataLength,
- PSZ QueueName,
- PSZ DriverName);
- extern BOOL QueryDefaultQueue(PSZ, PSZ);
- extern BOOL QueryJobProperties(HAB hAB,
- PVOID *DriverData,
- PULONG DriverDataLength,
- PSZ QueueDriverName,
- PSZ QueueName,
- PSZ PrtName,
- BOOL Flag);
-
- /* Standard Dialog box ids */
- #define IDD_ABOUTBOX 1002
- #define ID_GRAPHIC 1001
- #define PINFO_ICON 1019
-
- /* Dialog item ids */
- #define ID_ABOUT 1003
- #define DLG_OK 2010
-
- /* Menu item ids */
- #define IDM_FILE 200
- #define IDM_F_GPI 206
- #define IDM_F_METAFILE 208
- #define IDM_F_METAFILE_LOAD 210
- #define IDM_F_METAFILE_PREVIOUS 211
- #define IDM_F_PRINT 212
- #define IDM_F_TEXT_PREVIOUS 216
- #define IDM_H_ABOUT 218
- #define IDM_H_HELP 219
- #define IDM_H_HELPINDEX 220
- #define IDM_H_HELPGEN 221
- #define IDM_H_HELPUSING 222
- #define IDM_H_HELPKEYS 223
- #define IDM_INFO_OK 228
-
- /* Help item ids */
- #define HELP_INDEX 64044
- #define HELP_GEN 20409
- #define HELP_KEYS 20410
- #define HELP_USING 64027
- #define PANEL_HELPKEYS 20818
- #define HID_FS_OPEN_DLG_HELP_PANEL 20809
-
- #define IDM_OPTIONS 224
- #define IDM_O_PRINTPROPERTIES 226
-
- /* Messagetable ids */
- #define ERRMSG_REGISTER_FAILED 3004
- #define ERRMSG_PRINT_THREAD 3005
- #define ERRMSG_CREATE_WINDOW 3006
- #define ERRMSG_INFO_WINDOW 3008
- #define ERRMSG_DRAW_THREAD 3009
- #define ERRMSG_NO_HELP 3010
- #define ERRMSG_METAFILE_FAILED 3011
- #define ERRMSG_HELP_TERMINATED 3012
- #define ERRMSG_HELP_ERROR 3013
- #define ERRMSG_HELPDISPLAYERROR 3014
- #define ERRMSG_DRAWTHR_MSG2 3033
- #define IDS_ERRORMSG 27
- #define IDS_UNKNOWNMSG 28
-
- /* Stringtable ids */
- #define APPLICATION_NAME 3037
- #define FILEDLG_META_HEADER 3039
- #define TEXT_SPOOLING_MESSAGE 3046
- #define TEXT_DRAWTHR_SIZEGPI 3053
- #define TEXT_DRAWTHR_SIZEMETA 3054
-
- /* Help table and subtables */
- #define SUBTABLE_MAIN 2000
- #define SUBTABLE_INFO 3000
-
- /* Main window help panels */
- #define PANEL_MAIN 2100
- #define PANEL_INFO 3100
-
- /* Main window subtable, includes menu item help */
- #define PANEL_FILE 20801
- #define PANEL_FILELOAD 20803
- #define PANEL_PRINT 20804
-
- #define PANEL_HELP 64022
- #define PANEL_HELPINDEX 64026
- #define PANEL_HELPGENERAL 64024
- #define PANEL_HELPUSING 64023
- #define PANEL_HELPABOUT 64096
-
- /* Message box help resource entry points */
- #define PANEL_INFO_OK 20805
- /************************** End of GRAPHIC.H ******************************/
-