Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

490 lines
18 KiB

/*
Enhanced NCSA Mosaic from Spyglass
"Guitar"
Copyright 1994 Spyglass, Inc.
All Rights Reserved
Author(s):
Eric W. Sink [email protected]
*/
/* protos.h */
#ifndef _H_WIN32GUI_PROTOS_H_
#define _H_WIN32GUI_PROTOS_H_
DCL_WinMain();
DCL_WinProc(Frame_DefProc);
BOOL Frame_RegisterClass(VOID);
BOOL Frame_CreateWindow(struct Mwin * tw);
BOOL Frame_Constructor(VOID);
void ProcessKillMe(VOID);
BOOL LocalPageLastWriteTimeChanged( struct Mwin *tw, struct _www *w3doc, BOOL bDoRefresh );
HMENU MB_GetWindowsPad(HMENU hMenuBase);
VOID MB_OnInitWindowMenu(HWND hWnd, HMENU hMenu);
VOID MB_OnInitMenu(HWND hWnd, HMENU hMenu);
VOID MB_SwitchToMenu(HWND, WC_WININFO *);
LRESULT MB_OnMenuSelect(HWND, HMENU, int, HMENU, UINT);
VOID MB_InitMenu_CommonPad_Table(HWND, HMENU);
HMENU MB_GetMacrosPad(struct Mwin *tw);
HMENU MB_GetToolsPad(struct Mwin *tw);
HMENU MB_GetColorTablesPad(HMENU);
BOOL MB_LoadMenuResources(VOID);
VOID GWC_ED_SubClassIt(HWND hWnd_ed);
HWND GWC_ED_CreateToolEditControl(HWND hWnd, LPRECT r, DWORD dwStyle);
extern BOOL bTBar_URLComboProtected;
void ApplyDefaultsToURL( char *szLastURLTyped );
void SaveTypedURLInfo( void );
void LoadTypedURLInfo( void );
VOID TBar_LoadFailed(struct Mwin *tw, char *szURLThatFailed );
VOID TBar_LoadSucceeded( struct Mwin *tw );
VOID TBar_UpdateTBar(struct Mwin * tw);
void TBar_UpdateTBItems( struct Mwin *tw );
void TBar_ActOnTypedURL( struct Mwin *tw );
void TBar_RefillURLComboBox( HWND hWndComboBox );
#ifdef FEATURE_INTL
void TBar_FillMIMEComboBox(HWND hWndComboBox, int iMimeCharSet);
#endif
HWND TBar_GetCurrentGWC(VOID);
VOID TBar_LetGwcInitMenu(HWND, HMENU);
VOID TBar_UpdateTBar(struct Mwin *);
VOID TBar_SpinGlobe(struct Mwin *tw);
VOID TBar_ChangeSize(HWND);
BOOL TBar_CreateWindow(HWND);
BOOL TBar_RegisterClass(VOID);
VOID TBar_Enable(BOOL);
void TBar_ToggleGwcMenu(void);
VOID BrowseWindow_DoPrint(HDC hDC, struct Mwin *tw);
VOID ImageViewer_DoPrint(HDC hDC, struct Mwin *tw);
BOOL ToolBar_CreateWindow( HWND hFrameWnd, struct Mwin *tw );
void RemoveAllStringsFromCommonPool( );
void AddStringToCommonPool( char *string );
void GetMostRecentTypedURL( char *szURL );
BOOL GWC_BASE_RegisterClass(VOID);
BOOL GWC_GDOC_RegisterClass(VOID);
void GWC_GDOC_RecreateGlobeBitmaps(struct Mwin *tw);
BOOL GWC_MENU_CreateWindow(HWND hWnd);
BOOL GWC_MENU_RegisterClass(VOID);
HWND GWC_DDL_CreateToolListBox(HWND hWnd, LPRECT r, DWORD dwStyle);
VOID GWC_DDL_SubClassIt(HWND hWnd_lb);
VOID GWC_DDL_SizeOfControl(HWND hWnd, LPRECT pr, DWORD dwStyle, SIZE * ps);
BOOL BHBar_Constructor();
VOID BHBar_SetStatusField(struct Mwin *, LPCTSTR);
VOID BHBar_ChangeSize(HWND);
BOOL BHBar_CreateWindow(HWND);
BOOL BHBar_RegisterClass(VOID);
VOID BHBar_Update(struct Mwin *);
int Plan_CloseAll(void);
int Plan_close(struct Mwin *);
struct Mwin *GetPrivateData(HWND);
VOID MD_GetLargestClientRect(HWND, LPRECT);
VOID MD_AdjustScrollInfo( struct Mwin * tw );
VOID MD_ChangeSize(HWND);
void main_EnterIdle(HWND hWnd, WPARAM wParam);
void SysBeep(int j);
VOID WV_TruncateEntrynameFromPath(LPTSTR);
VOID ER_Message(DWORD, WORD,...);
VOID ER_ResourceMessage(DWORD, WORD, int cbStringID);
VOID MSG_Create(LPTSTR, WORD,...);
int resourceMessageBox(
HWND hwndOwner, // handle of owner window
int cbText, // resource id of text in message box
int cbTitle, // resource id of title of message box
UINT fuStyle // style of message box
);
VOID E3D_RecessedFieldText(HDC, PE3DINSTANCE, LPCTSTR, int);
VOID E3D_RecessedFieldFloat(HDC, PE3DINSTANCE, float, char *);
VOID E3D_RecessedField(HDC, PE3DINSTANCE);
VOID Font_LogFontToString(LPLOGFONT lplf, LPTSTR szFontString, int nLogPixelsY);
HFONT Font_ChooseFont(HWND, LPLOGFONT);
void ShowSplash(void);
void HideSplash(void);
BOOL Splash_UnregisterClass(void);
BOOL Splash_RegisterClass(VOID);
HWND Splash_CreateWindow(void);
VOID UpdateThermometer(struct Mwin * tw, int nTherm);
VOID DlgAbout_RunDialog(HWND hWnd);
void DlgEdMac_RunDialog(HWND hWnd, BOOL bMoreMacros);
VOID DlgLOGO_RunDialog(HWND hWnd);
char *DlgMacEd_RunDialog(HWND hWnd, char *label, char *buffer);
VOID DlgOpen_RunDialog(HWND hWnd, const char *szFilename, BOOL inNewWindow );
VOID DlgWinf_RunDialog(HWND hWnd);
HFONT Font_CreateFontIndirect(LOGFONT *);
BOOL PUSHBTN_RegisterClass(VOID);
BOOL ANIMBTN_RegisterClass(VOID);
void ANIMBTN_RecreateBitmaps(HWND hWnd);
BOOL TBar_SetGlobe(struct Mwin * tw, BOOL bRunning);
int WinSock_InitDLL(BOOL bNetwork);
int Font_Init(void);
void PageSetup_Init(struct page_setup *p);
int WinSock_AllOK(void);
struct Mwin *NewMwin(int type);
void Fetch_DoDownload(struct Mwin * tw);
VOID Fetch_CompleteFetch(struct Mwin * tw,LPARAM lParam);
void HTAA_FreeStaticStuff(void);
void Font_DeleteAll(void);
void Image_DeleteAll(void);
void HText_deleteStyles(void);
void HTAtom_deleteAll(void);
void HTDisposeConversions(void);
void HTDisposeProtocols(void);
void HTFile_deleteSuffixes(void);
int WinSock_Cleanup(void);
BOOL GWC_GDOC_CreateWindow(HWND hWnd);
void DlgHTML_RunDialog(HWND hWnd, char *url, char *stream);
VOID PRINT_Window(struct Mwin *tw, LPDOPRINTPROC lpfnDoPrint);
HWND PUSHBTN_CreateGrayableWindow(struct Mwin * tw, HWND hWnd,
int left_edge,
int cmd,
int up_id, int down_id, int gray_id, int cx, int cy);
HWND ANIMBTN_CreateWindow(struct Mwin *tw, HWND hWnd,
int left_edge, int first_id);
BOOL ANIMBTN_Start(HWND hWnd);
BOOL ANIMBTN_Stop(HWND hWnd);
void DlgHOT_RunDialog(BOOL bGlobalHistory);
BOOL DlgHOT_IsHotlistRunning(void);
BOOL DlgHOT_IsHistoryRunning(void);
void DlgHOT_RefreshHotlist(void);
void DlgHOT_RefreshHistory(void);
void DlgHOT_EnableAllWindows(BOOL bEnable);
HWND DlgHOT_GetHotlistWindow(void);
HWND DlgHOT_GetHistoryWindow(void);
BOOL DlgAbout_IsRunning(void);
VOID DlgPage_RunDialog(HWND hWnd, struct page_setup *pInfo);
BOOL DlgPage_IsRunning(void);
BOOL DlgPrnt_RunDialog(struct Mwin * tw, HWND hWnd, BOOL bReturnDC);
#ifdef FEATURE_IMG_THREADS
unsigned char *ReadGIFObject(void *decoderObject, long *w, long *h, PALETTEENTRY * colrs, long *bg);
unsigned char *ReadGIFData(unsigned char *pMem, long *w, long *h, PALETTEENTRY * colrs, long *bg);
// Performs a StretchDIBits patching bitmap color table as necessary to
// handle dibenv
int MyStretchDIBits(
HDC hdc, // handle of device context
int XDest, // x-coordinate of upper-left corner of dest. rect.
int YDest, // y-coordinate of upper-left corner of dest. rect.
int nDestWidth, // width of destination rectangle
int nDestHeight, // height of destination rectangle
int XSrc, // x-coordinate of upper-left corner of source rect.
int YSrc, // y-coordinate of upper-left corner of source rect.
int nSrcWidth, // width of source rectangle
int nSrcHeight, // height of source rectangle
CONST VOID *lpBits, // bitmap bits
LPBITMAPINFO lpBitsInfo, // bitmap data
UINT iUsage, // usage
DWORD dwRop, // raster operation code
PDIBENV pdibenv // DIBENV for draw
);
// Performs a StretchDIBits for progressive draw (deals with
// only some of the data being available etc
int GifStretchDIBits(
void *pdecoder,
HDC hdc, // handle of device context
int XDest, // x-coordinate of upper-left corner of dest. rect.
int YDest, // y-coordinate of upper-left corner of dest. rect.
int nDestWidth, // width of destination rectangle
int nDestHeight, // height of destination rectangle
int XSrc, // x-coordinate of upper-left corner of source rect.
int YSrc, // y-coordinate of upper-left corner of source rect.
int nSrcWidth, // width of source rectangle
int nSrcHeight, // height of source rectangle
UINT iUsage, // usage
DWORD dwRop, // raster operation code
PDIBENV pdibenv // DIBENV for draw
);
// Performs an invalidate of rectangles changed between logicalRow0
// and logicalRowN
void GifUpdateRect(void *pdecoder,struct Mwin *tw, RECT *r,int logicalRow0,int logicalRowN);
// Performs an invalidate of rectangles changed between logicalRow0
// and logicalRowN
void GifImgUpdateRect(struct ImageInfo *pImg,struct Mwin *tw, RECT *r,int logicalRow0,int logicalRowN);
// Performs an invalidate of rectangles changed between logicalRow0
// and logicalRowN
void GenericUpdateRect(unsigned long flags,int height,int width,struct Mwin *tw, RECT *r,int logicalRow0,int logicalRowN, BOOL bTransparent);
// Frees buffer used by progressive gif drawing to render transparent images
void GifFreeRleData();
#else
unsigned char *ReadGIF(unsigned char *pMem, long *w, long *h, PALETTEENTRY * colrs, long *bg);
#endif
#ifdef FEATURE_JPEG
#ifdef FEATURE_IMG_THREADS
unsigned char *ReadJPEG_Dithered(void *pdecoderObject,unsigned char *data, long len, long *width, long *height);
unsigned char *ReadJPEG_Dithered_VGA(void *pdecoderObject,unsigned char *data, long len, long *width, long *height);
unsigned char *ReadJPEG_RGB(void *pdecoderObject,unsigned char *data, long len, long *width, long *height);
int JPEGStretchDIBits(
void *pdecoder,
HDC hdc, // handle of device context
int XDest, // x-coordinate of upper-left corner of dest. rect.
int YDest, // y-coordinate of upper-left corner of dest. rect.
int nDestWidth, // width of destination rectangle
int nDestHeight, // height of destination rectangle
int XSrc, // x-coordinate of upper-left corner of source rect.
int YSrc, // y-coordinate of upper-left corner of source rect.
int nSrcWidth, // width of source rectangle
int nSrcHeight, // height of source rectangle
UINT iUsage, // usage
DWORD dwRop, // raster operation code
PDIBENV pdibenv // DIBENV for draw
);
#else
unsigned char *ReadJPEG_Dithered(unsigned char *pMem, long len, long *w, long *h);
unsigned char *ReadJPEG_Dithered_VGA(unsigned char *pMem, long len, long *w, long *h);
unsigned char *ReadJPEG_RGB(unsigned char *pMem, long len, long *w, long *h);
#endif
#endif
void FixPathName(char *path);
//REPLACED --> void getFilterSpec(int cbSpecID,char *szFilterSpec,int cbFilterSpec);
// WITH MACRO below
void INTERNALgetFilterSpec(int cbSpecID,char *pszFilePath, char *szFilterSpec,int cbFilterSpec);
#define getFilterSpec(cbSID,szFS,cbFS) INTERNALgetFilterSpec(cbSID,NULL,szFS,cbFS)
int DlgSaveAs_RunDialog(HWND hWnd, char *path, char *buf, int filters, int cbTitleID);
#ifdef FEATURE_IMG_THREADS
unsigned char *ReadXBM(void *pdecoderObject, long *w, long *h);
#else
unsigned char *ReadXBM(unsigned char *pMem, long *w, long *h);
#endif
BOOL LoadImagePlaceholders(void);
void DestroyImagePlaceholders(void);
void ChangeStyleSheet( char *szNewStyleSheet );
void DlgPREF_RunDialog(HWND hWnd);
BOOL DlgPREF_IsRunning(void);
void InitPreferences(void);
void LoadPreferences(void);
void SavePreferences(void);
void DestroyPreferences(void);
BOOL IsEditHandlerRegistered(void);
int ExecuteCommand(char *cmd);
void DlgFIND_RunDialog(struct Mwin *tw);
HDC PRINT_GetPrinterDC(struct Mwin *tw, HWND hWnd);
void *pCreateDitherData(int xsize);
void x_ColorConstrain(unsigned char *psrc, unsigned char *pdst, PALETTEENTRY *pe, int xsize, int transparent);
void x_DitherRelative(unsigned char *pdata, PALETTEENTRY *pe, int xsize, int ysize, int transparent,int *v_rgb_mem, int yfirst, int ylast);
PBITMAPINFO BIT_Make_DIB_PAL_Header_Prematched(int xsize, int ysize, CONST BYTE * pdata);
PBITMAPINFO BIT_Make_DIB_PAL_Header(int xsize, int ysize, CONST BYTE * pdata, HPALETTE hPalette, int transparent);
PBITMAPINFO BIT_Make_DIB_RGB_Header_Printer(int xsize, int ysize, CONST BYTE * pdata, HPALETTE hPalette, int transparent, unsigned int flags);
PBITMAPINFO BIT_Make_DIB_RGB_Header_Screen(int xsize, int ysize, CONST BYTE * pdata, HPALETTE hPalette, int transparent, unsigned int flags);
PBITMAPINFO BIT_Make_DIB_RGB_Header_VGA(int xsize, int ysize, CONST BYTE * pdata);
PBITMAPINFO BIT_Make_DIB_RGB_Header_24BIT(int xsize, int ysize, CONST BYTE * pdata);
void GTR_FixExtraPaletteColors(void);
int Printer_StretchDIBits(HDC hdc, int XDest, int YDest, int nDestWidth, int nDestHeight,
int XSrc, int YSrc, int nSrcWidth, int nSrcHeight,
struct ImageInfo *img);
//
// RleDib
//
// given a DIB make a RLE out of it, treating a passed color as transparent
// the output buffer must be big enougth to hold the RLE, or bad things
// will happen. if *pRle == NULL, GTR_MALLOCs output buffer and returns
// pointer.
//
long RleDib(
PBITMAPINFO lpbi, // bitmap info
LPVOID pDib, // DIB to compress
UINT uColor, // trasnparent color
LPVOID *pRle); // RLE bits output
//
// DecodeRle
//
// reverses RleDib. if *ppb == NULL, GTR_MALLOCs output buffer and returns
// pointer.
//
void DecodeRle(PBITMAPINFO lpbi, LPVOID *ppb, UINT uColor, LPVOID pdata);
//
// Image_MakeRleCompatible
//
// makes sure pImg's bitmap (if transparent) is in the form best suited to
// drawing displayWidth and displayHeight.
void Image_MakeRleCompatible(ImageInfo *pImg, int displayWidth, int displayHeight);
BOOL CALLBACK PRINT_AbortProc(HDC hDC, int error);
void WinSock_GetWSAData(WSADATA * wsa);
void FORM_DoSearch(struct Mwin *tw, int iElement);
void FORM_DoQuery(struct Mwin *tw, int iElement, POINT * pMouse);
VOID GTR_DestroyPalette(VOID);
UINT GTR_RealizePalette(HDC hDC);
BOOL GTR_CreatePalette(VOID);
#ifdef FEATURE_INTL
void MyGetTextExtentExPointWithMIME(int iMimeCharSet, HDC hdc,LPCSTR lpsz,int cbString,int nMaxExtent,LPINT lpnFit,LPSIZE lpSize);
BOOL myGetTextExtentPointWithMIME(int iMimeCharSet, HDC hdc, char *sz, int len, SIZE * psiz);
#else
BOOL myGetTextExtentPoint(HDC hdc, char *sz, int len, SIZE * psiz);
#endif
void TEMP_Init(void);
int TEMP_Add(char *filename);
void TEMP_Cleanup(void);
void FORM_DoReset(struct Mwin *tw, int iElement);
#ifdef OLD_HOTLIST
int DlgEdit_RunDialog(HWND hWnd, char *title, char *url, char *new_title, char *new_url, int new_title_len, int new_url_len);
#endif
void * GTR_DebugMalloc(char *szFile, int iLine, size_t iSize);
void * GTR_DebugCalloc(char *szFile, int iLine, size_t iSize, size_t iNum);
void * GTR_DebugRealloc(char *szFile, int iLine, void *pMem, size_t iSize);
void GTR_DebugFree(char *szFile, int iLine, void *pMem);
void GTR_MemStats(void);
void PREF_GetHomeSearchURL(char *url, BOOL fHome);
void PREF_CreateInitialURL(char *url);
DWORD PREF_GetTempPath(DWORD cchBuffer, LPTSTR lpszTempPath);
#ifdef FEATURE_OPTIONS_MENU
void DlgSTY_RunDialog(HWND hWnd);
VOID DlgTemp_RunDialog(HWND hWnd);
VOID DlgDIR_RunDialog(HWND hWnd, char *szDir);
VOID DlgHIST_RunDialog(HWND hWnd);
#endif /* FEATURE_OPTIONS_MENU */
void setKeyRoot( const char *szNewKeyRoot );
void RegistryCloseCachedKey();
UINT DeleteRegistryValue( CHAR * pszKeyName, CHAR * pszValueName, HKEY hkeyRoot );
DWORD regWritePrivateProfileInt( CHAR * pszKeyName,CHAR * pszValueName,
DWORD iValue, HKEY hkeyRoot );
UINT regGetPrivateProfileInt( CHAR * pszKeyName,CHAR * pszValueName, UINT default_value,
HKEY hkeyRoot );
UINT regWritePrivateProfileString( CHAR * pszKeyName,CHAR * pszValueName,
CHAR * pszValue, HKEY hkeyRoot );
UINT regGetPrivateProfileString( CHAR * pszKeyName,CHAR * pszValueName, CHAR *default_value,
CHAR * pszValue,UINT cbValue, HKEY hkeyRoot ) ;
UINT regGetPrivateProfileSection( CHAR * pszKeyName, CHAR * pszValue, UINT cbValue,
HKEY hkeyRoot );
VOID DlgAA_RunDialog(HWND hWnd, const char *Msg, char **username, char **password);
void DOS_EnforceEndingSlash(char *dir);
void DOS_MakeShortFilename(char *dest, char *src);
COLORREF PREF_GetBackgroundColor(void);
COLORREF PREF_GetForegroundColor(void);
void PREF_GetRootDirectory(char *s);
void PREF_GetHelpDirectory(char *s);
#ifdef CUSTOM_URLMENU
void PREF_HandleCustomURLMenuItem(struct Mwin *, int ndx);
void PREF_AddCustomURLMenu(HMENU hMenu);
#endif
void DlgCOLOR_RunDialog(HWND hWnd, COLORREF rgbInit, int ColorItem);
void PREF_SetupToolbar(void);
void SaveViewersInfo(void);
LRESULT Net_HandleSocketMessage(WPARAM wParam, LPARAM lParam);
LRESULT Net_HandleTaskMessage(WPARAM wParam, LPARAM lParam);
VOID OpenHelpWindow(HWND hWnd);
BOOL Hidden_CreateWindow(void);
BOOL Hidden_RegisterClass(void);
void Hidden_DestroyWindow(void);
BOOL Hidden_EnableAllChildWindows(BOOL bEnable, BOOL bTakeSemaphore);
void SelectFirstControl(struct Mwin *tw);
struct ImageInfo *TW_BackgroundImage(struct _www *w3doc);
void TW_DrawBackground( struct Mwin *tw, int off_left, int off_top,
int extra_off_left, int extra_off_top, RECT *pRectWnd );
void TW_Draw(struct Mwin *tw, int off_left, int off_top, FRAME_INFO *pFrame, RECT * rWnd, BOOL bDrawFormControl, struct _position *pposStart, struct _position *pposEnd, BOOL bTextOpaque, BOOL bPrinting);
BOOL TW_ExistsModalChild(struct Mwin *tw);
BOOL TW_EnableModalChild(HWND hDlg);
INLINE BOOL TW_SafeWindow(struct Mwin *tw)
{
return (tw && (!TW_ExistsModalChild(tw)) && IsWindowEnabled(tw->hWndFrame));
}
struct Mwin *TW_FindDDECandidate(void);
struct Mwin *TW_FindTopmostWindow(void);
struct Mwin *TW_FindTopmostNotBusyWindow(void);
void DlgERR_AddError(struct Mwin *tw, char *sz);
void DlgERR_ShowPending(struct Mwin *tw);
void PREF_GetPrefsDirectory(char *s);
VOID DlgSelectWindow_RunDialog(HWND hWnd);
void PREF_SaveWindowPosition(HWND hWndFrame);
#ifdef FEATURE_WINDOWS_MENU
void TW_CreateWindowList(HWND hwnd, HMENU hMenu, HWND hListbox);
void TW_ActivateWindowFromList(int menuID, int listRow, HWND hSelectWindow);
void TW_CascadeWindows(void);
void TW_TileWindows(void);
HWND TW_GetNextWindow(HWND hwnd);
#endif
void TW_RestoreWindow(HWND hwnd);
void TW_AbortAndRefresh( struct Mwin *tw );
void GTR_RefreshHistory(void);
void TW_EnableButton(HWND hwnd, BOOL bEnabled);
#ifdef FEATURE_VENDOR_PREFERENCES
BOOL Vendor_SetPrefsDirectory(void);
#endif /* FEATURE_VENDOR_PREFERENCES */
BOOL TW_ChooseColor(LPCHOOSECOLORA);
BOOL TW_ChooseFont(LPCHOOSEFONTA);
DWORD TW_CommDlgExtendedError(void);
BOOL TW_GetOpenFileName(LPOPENFILENAMEA);
BOOL TW_GetSaveFileName(LPOPENFILENAMEA);
BOOL TW_PrintDlg(LPPRINTDLGA);
#ifdef FEATURE_NEW_PAGESETUPDLG
BOOL TW_PageSetupDlg(LPPAGESETUPDLGA lppagesetupdlga);
#endif
BOOL TW_MCIWndRegisterClass(HINSTANCE hInstance);
VOID TW_UnloadDynaLinkedDLLs();
BOOL EscapeForAcceleratorChar( char *escaped_string, int length, const char *string );
#ifdef FEATURE_INTL
UINT MapLangToCP(LCID lcid);
CONST char *EncodeMBCSString(CONST char *s, int *l, MIMECSETTBL *pMime);
CONST char *DecodeMBCSString(CONST char *s, int *l, MIMECSETTBL *pMime);
void SetShellFont(HWND hwnd);
void DeleteShellFont(HWND hwnd);
#endif
#endif /* _H_WIN32GUI_PROTOS_H_ */