|
|
/* CLIPBRD.H */ /* */ /* Copyright 1985-92, Microsoft Corporation */
#include <windows.h>
#include <port1632.h>
#include <commdlg.h>
#ifndef MAXSHORT
#define MAXSHORT 0x7fff
#endif
#define SIZE_OF_WIN31_BITMAP_STRUCT 14 //Win 3.1 BITMAP structure is 14 bytes long
#define SIZE_OF_WIN31_METAFILEPICT_STRUCT 8 //Win 3.1 METAFILEPICT structure is 8 bytes long
#define PRIVATE_FORMAT(fmt) ((fmt) >= 0xC000)
/* Header text string ids */ #define IDS_NAME 100 /* CF_TEXT to CF_OEMTEXT (1 to 7) are also used */
#define IDS_ERROR 102 /* as string ids. Be sure to keep these */
#define IDS_BINARY 103 /* different. */
#define IDS_CLEAR 104
#define IDS_FMTNOTSAV 105
#define IDS_DEFAULT 106
#define IDS_CANTDISPLAY 107 /* "Can't display data in this format" */
#define IDS_NOTRENDERED 108 /* "Application Couldn't render data" */
#define IDS_HELPFILE 109 /* Clipbrd.hlp */
#define IDS_CLEARTITLE 110
#define IDS_CONFIRMCLEAR 111
#define IDS_ALREADYOPEN 112 /* OpenClipboard() fails */
#define IDS_INVALIDFILENAME 113 /* Filename is invalid */
#define IDS_OPENCAPTION 114 /* ID of File/Open dlg. caption string */
#define IDS_SAVECAPTION 115 /* ID of File/Save dlg. caption string */
#define IDS_MEMERROR 116
#define IDS_DEFEXTENSION 117 /* Default extension for clipboard files */
#ifdef JAPAN
#define IDS_ENOTVALIDFILE 130 /* ID of invalid file format messagebox*/
#endif
#define IDS_READERR 200 /* ID of base ReadClipboardFile error */
#define IDS_READFORMATERR 201
#define IDS_READOPENCLIPERR 202
#define IDS_FILTERTEXT 301 /* ID of filter string for File/Open */
/* Dialogbox resource id */ #define ABOUTBOX 1
#define CONFIRMBOX 2
#define CDEFFMTS 8 /* Count of predifined clipboard formats */
#define VPOSLAST 100 /* Highest vert scroll bar value */
#define HPOSLAST 100 /* Highest horiz scroll bar value */
#define CCHFMTNAMEMAX 79 /* Longest clipboard data fmt name, including
terminator */ #define cLineAlwaysShow 3 /* # of "standard text height" lines to show
when maximally scrolled down */ #define BUFFERLEN 200 /* String buffer length */
#define SMALLBUFFERLEN 90
#define IDSABOUT 1
#define CBMENU 1 /* Number for the Clipboard main menu */
#define CBICON 2
#define CBACCEL 3
#define FILTERMAX 100 /* max len. of File/Open filter string */
#define CAPTIONMAX 30 /* len of caption text for above dlg. */
#define PATHMAX 128 /* max. len of DOS pathname */
#define MSGMAX 255
/* The menu ids */ #define CBM_AUTO WM_USER
#define CBM_CLEAR WM_USER+1
#define CBM_OPEN WM_USER+2
#define CBM_SAVEAS WM_USER+3
#define CBM_ABOUT WM_USER+4
#define CBM_EXIT WM_USER+5
#define CBM_HELP 0xFFFF /* Standard numbers */
#define CBM_USEHELP 0xFFFC /* Standard numbers */
#define CBM_SEARCH 0x0021
/* Last parameter to SetDIBits() and GetDIBits() calls */
#define DIB_RGB_COLORS 0
#define DIB_PAL_COLORS 1
#define IDCLEAR IDOK
/* Structures for saving/loading clipboard data from disk */
#define CLP_ID 0xC350
#define CLP_NT_ID 0xC351
// Windows 3.1 used byte packing on structs. These structs are used in
// files common between NT and Win 3.1, therefore need byte packing.
// a-mgates 9/28/92
#ifndef RC_INVOKED
#pragma pack(1)
typedef struct { WORD magic; WORD FormatCount; } FILEHEADER;
typedef struct { UINT FormatID; DWORD DataLen; DWORD DataOffset; TCHAR Name[CCHFMTNAMEMAX]; } FORMATHEADER; #pragma pack()
#endif
void NEAR PASCAL SaveClipboardToFile(HWND); void NEAR PASCAL OpenClipboardFile(HWND);
BOOL MyOpenClipboard(HWND); BOOL NEAR PASCAL ClearClipboard(HWND); void NEAR PASCAL GetClipboardName(UINT fmt, LPSTR szName, INT iSize);
BOOL RenderFormat(FORMATHEADER *f,INT); DWORD APIENTRY lread(INT fh, void FAR *pv, DWORD ul); DWORD APIENTRY lwrite(INT fh, void FAR *pv, DWORD ul);
void UpdateCBMenu(HWND); void ChangeCharDimensions(HWND,UINT,UINT); void SetCharDimensions(HWND,HFONT); void SaveOwnerScrollInfo(HWND); void RestoreOwnerScrollInfo(HWND);
void SendOwnerMessage(UINT, WPARAM, LPARAM); void SendOwnerSizeMessage(HWND, INT, INT, INT, INT);
void DrawStuff(HWND,PAINTSTRUCT *f);
void ClipbrdVScroll(HWND, WORD, WORD); void ClipbrdHScroll(HWND, WORD, WORD);
UINT GetBestFormat(UINT);
LONG APIENTRY ClipbrdWndProc(HWND, UINT, WPARAM, LONG); BOOL APIENTRY ConfirmDlgProc(HWND, UINT, WPARAM, LONG);
/* Far low mem situations. */ void FAR PASCAL MemErrorMessage(void);
/***************************** global data *******************************/
extern HINSTANCE hInst; extern TCHAR szFileName[]; extern HWND hwndMain; extern TCHAR szAppName[]; extern TCHAR szFileSpecifier[];
/* variables for the new File Open,File SaveAs and Find Text dialogs */ #define CCH_szDefExt 8
extern OPENFILENAME OFN; extern TCHAR szFileName []; extern BOOL fNTReadFileFormat; extern TCHAR szLastDir []; extern TCHAR szFilterSpec[]; /* default filter spec. for above */ extern TCHAR szCustFilterSpec[]; /* buffer for custom filters created */ extern UINT wHlpMsg; /* message used to invoke Help */ extern TCHAR szOpenCaption []; /* File open dialog caption text */ extern TCHAR szSaveCaption []; /* File Save as dialog caption text */ extern TCHAR szDefExt [CCH_szDefExt]; /* default file extension to use */
#define MAXBITSPERPIXEL 24
extern BOOL fAnythingToRender; extern BOOL fOwnerDisplay; extern BOOL fDisplayFormatChanged;
extern TCHAR szAppName[]; extern TCHAR szCaptionName[CAPTIONMAX]; extern TCHAR szHelpFileName[20];
extern TCHAR szMemErr[MSGMAX];
extern HWND hwndNextViewer; extern HWND hwndMain;
extern HANDLE hAccel; extern HANDLE hfontSys; extern HANDLE hfontOem; extern HANDLE hfontUni;
extern HBRUSH hbrWhite; extern HBRUSH hbrBackground;
extern HMENU hMainMenu; extern HMENU hDispMenu;
extern INT OwnVerMin, OwnVerMax, OwnHorMin, OwnHorMax; extern INT OwnVerPos, OwnHorPos;
extern LONG cyScrollLast; extern LONG cyScrollNow; extern INT cxScrollLast; extern INT cxScrollNow;
extern RECT rcWindow; extern UINT cyLine, cxChar, cxMaxCharWidth; extern UINT cxMargin, cyMargin;
extern UINT CurSelFormat; extern UINT rgfmt[];
|