📄 gvwin.h
字号:
/* Copyright (C) 1993-2001, Ghostgum Software Pty Ltd. All rights reserved.
This file is part of GSview.
This program is distributed with NO WARRANTY OF ANY KIND. No author
or distributor accepts any responsibility for the consequences of using it,
or for whether it serves any particular purpose or works at all, unless he
or she says so in writing. Refer to the GSview Free Public Licence
(the "Licence") for full details.
Every copy of GSview must include a copy of the Licence, normally in a
plain ASCII text file named LICENCE. The Licence grants you the right
to copy, modify and redistribute GSview, but only under certain conditions
described in the Licence. Among other things, the Licence requires that
the copyright notice and this notice be preserved on all copies.
*/
/* gvwin.h */
/* Header includes for Windows GSview */
#define STRICT
#include <windows.h>
#include <windowsx.h>
#include <commdlg.h>
#include <shellapi.h>
#include <mmsystem.h>
#ifdef USE_HTMLHELP
#include <htmlhelp.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#ifdef _MSC_VER
#include <direct.h>
#define _export
#else
#include <dir.h>
#include <dirent.h>
#endif
#include <sys/stat.h>
#include <io.h>
#include <time.h>
#include <process.h>
#include "gsvver.h"
#include "gvcrc.h"
#ifdef _MSC_VER
#define DLLEXPORT __declspec(dllimport)
#define GSDLLEXPORT __declspec(dllimport)
#else
#define DLLEXPORT _import
#define GSDLLEXPORT _export
#endif
#ifndef RC_INVOKED
#define P0() void
#define P1(t1) t1
#define P2(t1,t2) t1,t2
#define P3(t1,t2,t3) t1,t2,t3
#define P4(t1,t2,t3,t4) t1,t2,t3,t4
#define P5(t1,t2,t3,t4,t5) t1,t2,t3,t4,t5
#define P6(t1,t2,t3,t4,t5,t6) t1,t2,t3,t4,t5,t6
#include "errors.h"
#include "iapi.h"
#include "gdevdsp.h"
#include "dscparse.h"
#include "gvcfile.h"
#ifndef NODEBUG_MALLOC
void * debug_malloc(size_t size);
void * debug_realloc(void *block, size_t size);
void debug_free(void *block);
void debug_memory_report(void);
#define malloc(size) debug_malloc(size)
#define calloc(nitems, size) debug_calloc(nitems, size)
#define realloc(block, size) debug_realloc(block, size)
#define free(block) debug_free(block)
extern long allocated_memory;
#endif
#ifdef DEBUG_MALLOC
extern FILE *malloc_file;
#endif
/* for gsv16spl.exe 16-bit spooler interface for Win32s */
#define WM_GSV16SPL WM_USER+1
extern HWND hwndspl; /* window handle of gsv16spl.exe */
#define PROFILE_SIZE 2048
#define MAXSTR 256 /* maximum file name length and general string length */
#define DEVICENAME "display"
#define DEFAULT_GSCOMMAND "gswin32.exe"
#define DEFAULT_RESOLUTION 96.0
#define DEFAULT_ZOOMRES 300.0
#define INISECTION "Options"
#define DEVSECTION "Devices"
#define CONVERTSECTION "Convert"
#define EOLSTR "\r\n"
#define COPY_BUF_SIZE 4096
#define PATHSEP "\\"
#include "gvceps.h"
#include "gvcprf.h"
#include "gvctype.h"
/* program details */
typedef struct tagPROG {
BOOL valid;
HINSTANCE hinst;
} PROG;
typedef struct tagPRINTER {
PROG prog; /* Ghostscript program doing printing */
char optname[MAXSTR];/* file storing command line options */
char psname[MAXSTR]; /* file storing temporary postscript */
} PRINTER;
/* bitmap details */
typedef struct tagBM {
int scrollx;
int scrolly;
BOOL changed; /* if width or height changed by GS */
} BMAP;
typedef struct tagDISPLAY {
int width; /* in pixels */
int height;
int planes;
int bitcount;
BOOL show_find; /* highlight found text */
BOOL epsf_clipped; /* display is clipped to bbox */
int zoom_xoffset; /* in 1/72" */
int zoom_yoffset;
POINT offset; /* offset of child window */
float xdpi;
float ydpi;
int xoffset; /* offset of page in pixels */
int yoffset;
int orientation; /* 0-3 = 0, 90, 180 or 270 degrees */
BOOL init; /* viewer initialised */
BOOL saved; /* interpreter state saved */
BOOL need_header;
BOOL need_trailer;
HANDLE event;
unsigned long tid;
} DISPLAY;
/* main structure with info about the GS DLL */
#include "cdll.h"
#include "cimg.h"
#include "cview.h"
/* all the external DLL use "C", not C++ */
#ifdef __cplusplus
extern "C" {
#endif
/* for pstotext DLL */
typedef int (GSDLLAPI *PFN_pstotextInit)(void **instance);
typedef int (GSDLLAPI *PFN_pstotextFilter)(void *instance, char *instr,
char **pre, char **word, char **post,
int *llx, int *lly, int *urx, int *ury);
typedef int (GSDLLAPI *PFN_pstotextExit)(void *instance);
typedef int (GSDLLAPI *PFN_pstotextSetCork)(void *instance, int value);
extern HMODULE pstotextModule;
extern FILE *pstotextOutfile;
extern void *pstotextInstance;
extern PFN_pstotextInit pstotextInit;
extern PFN_pstotextFilter pstotextFilter;
extern PFN_pstotextExit pstotextExit;
extern PFN_pstotextSetCork pstotextSetCork;
extern char pstotextLine[2048];
extern int pstotextCount;
/* for zlib gunzip decompression */
extern HINSTANCE zlib_hinstance;
typedef void *gzFile ;
typedef gzFile (WINAPI *PFN_gzopen)(const char *path, const char *mode);
typedef int (WINAPI *PFN_gzread)(gzFile file, void *buf, unsigned len);
typedef int (WINAPI *PFN_gzclose)(gzFile file);
extern PFN_gzopen gzopen;
extern PFN_gzread gzread;
extern PFN_gzclose gzclose;
/* for bzip2 decompression */
extern HINSTANCE bzip2_hinstance;
typedef void *bzFile ;
typedef bzFile (WINAPI *PFN_bzopen)(const char *path, const char *mode);
typedef int (WINAPI *PFN_bzread)(bzFile file, void *buf, unsigned len);
typedef int (WINAPI *PFN_bzclose)(bzFile file);
extern PFN_bzopen bzopen;
extern PFN_bzread bzread;
extern PFN_bzclose bzclose;
#ifdef __cplusplus
}
#endif
extern BOOL print_silent; /* /P or /F command line option used */
extern BOOL print_exit; /* exit on completion of printing */
extern int print_count; /* number of current print jobs */
/* It is safe to exit GSview when this is 0 */
extern int debug; /* /D command line option used */
extern FILE *debug_file; /* for gs input logging */
#define SOUND_PAGE 0
#define SOUND_NOPAGE 1
#define SOUND_NONUMBER 2
#define SOUND_NOTOPEN 3
#define SOUND_ERROR 4
#define SOUND_START 5
#define SOUND_EXIT 6
#define SOUND_BUSY 7
#define NUMSOUND 8
struct sound_s {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -