/* CLIPBRD.H */ /* */ /* Copyright 1985-92, Microsoft Corporation */ #include #include #include #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[];