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.
 
 
 
 
 
 

258 lines
8.6 KiB

/******************************************************************************
** I M E S H A R E . H **
** KentU/MSKK **
** **
** With this piece of code, the client Applications will be able to refer **
** the same TrueInline style described in the Registry. **
** This library should allow clients to get decoration style (either color **
** and various underlines) **
** For underlines, applications are allowed to substitute some of **
** predefined underlines to other predefined one. **
** **
** Oct./23/1995 : Start writing. **
** **
******************************************************************************/
#include "resource.h"
#ifdef IMESHARE_INTERNAL
#define IMESHAREAPI __declspec( dllexport )
#define IMECDECL
#else //!IMESHARE_INTERNAL
#define IMECDECL __cdecl
#define IMESHAREAPI __declspec( dllimport )
#endif //!IMESHARE_INTERNAL
#ifdef _DEBUG
#define IMESHAssert(f) (f || DebugAssert(__FILE__, __LINE__))
#else //_DEBUG
#define IMESHAssert(f)
#endif //_DEBUG
#define UINTIMEBOGUS 0xffffffff
#define ATTR_MIN 0
#ifdef FOR_REFERENCE_ONLY
#define ATTR_INPUT 0
#define ATTR_TARGET_CONVERTED 1
#define ATTR_CONVERTED 2
#define ATTR_TARGET_NOTCONVERTED 3
#define ATTR_INPUT_ERROR 4
#endif //FOR_REFERENCE_ONLY
#define ATTR_MAX 5
#define CATR (ATTR_MAX - ATTR_MIN)
#if defined (IMESHARE_INTERNAL) || (IMESHARE_CPL)
#define STY_PLAIN IDS_STYPLAIN
#define STY_BOLD IDS_STYBOLD
#define STY_ITALIC IDS_STYITALIC
#endif //IME_SHARE_INTERNAL
#define IMESTY_UL_MIN 2003
#define IMESTY_UL_SINGLE 2003
#define IMESTY_UL_DOUBLE 2004
#define IMESTY_UL_DOTTED 2005
#define IMESTY_UL_THICK 2006
#define IMESTY_UL_DASHLINE 2007
#define IMESTY_UL_DOTDASH 2008
#define IMESTY_UL_DOTDOTDASH 2009
#define IMESTY_UL_WAVE 2010
#define IMESTY_UL_LOWER 2011
#define IMESTY_UL_THICKLOWER 2012
#define IMESTY_UL_THICKDITHLOWER 2013
#define IMESTY_UL_DITHLOWER 2014
#define IMESTY_UL_MAX 2014 + 1
#if defined (IMESHARE_INTERNAL) || (IMESHARE_CPL)
#define IMECOL_SPEC_MIN IDS_COLAPPTEXT
#define IMECOL_APPTEXT IDS_COLAPPTEXT
#define IMECOL_APPWINDOW IDS_COLAPPWINDOW
#define IMECOL_SPEC_MAX IDS_COLAPPWINDOW + 1
#define COL_FUND_MIN IDS_COLBLACK
#define COL_BLACK IDS_COLBLACK
#define COL_BLUE IDS_COLBLUE
#define COL_CYAN IDS_COLCYAN
#define COL_GREEN IDS_COLGREEN
#define COL_MAGENTA IDS_COLMAGENTA
#define COL_RED IDS_COLRED
#define COL_YELLOW IDS_COLYELLOW
#define COL_WHITE IDS_COLWHITE
#define COL_DKBLUE IDS_COLDKBLUE
#define COL_DKCYAN IDS_COLDKCYAN
#define COL_DKGREEN IDS_COLDKGREEN
#define COL_DKMAGENTA IDS_COLDKMAGENTA
#define COL_DKRED IDS_COLDKRED
#define COL_DKYELLOW IDS_COLDKYELLOW
#define COL_DKGRAY IDS_COLDKGRAY
#define COL_LTGRAY IDS_COLLTGRAY
#define COL_FUND_MAX IDS_COLLTGRAY + 1
#define COL_WIN_MIN IDS_COLSCROLLBAR
#define COL_WIN_SCROLLBAR IDS_COLSCROLLBAR
#define COL_WIN_BACKGROUND IDS_COLBACKGROUND
#define COL_WIN_ACTIVECAPTION IDS_COLACTIVECAPTION
#define COL_WIN_INACTIVECAPTION IDS_COLINACTIVECAPTION
#define COL_WIN_MENU IDS_COLMENU
#define COL_WIN_WINDOW IDS_COLWINDOW
#define COL_WIN_WINDOWFRAME IDS_COLWINDOWFRAME
#define COL_WIN_MENUTEXT IDS_COLMENUTEXT
#define COL_WIN_WINDOWTEXT IDS_COLWINDOWTEXT
#define COL_WIN_CAPTIONTEXT IDS_COLCAPTIONTEXT
#define COL_WIN_ACTIVEBORDER IDS_COLACTIVEBORDER
#define COL_WIN_INACTIVEBORDER IDS_COLINACTIVEBORDER
#define COL_WIN_APPWORKSPACE IDS_COLAPPWORKSPACE
#define COL_WIN_HIGHLIGHT IDS_COLHIGHLIGHT
#define COL_WIN_HIGHLIGHTTEXT IDS_COLHIGHLIGHTTEXT
#define COL_WIN_BTNFACE IDS_COLBTNFACE
#define COL_WIN_BTNSHADOW IDS_COLBTNSHADOW
#define COL_WIN_GRAYTEXT IDS_COLGRAYTEXT
#define COL_WIN_BTNTEXT IDS_COLBTNTEXT
#define COL_WIN_INACTIVECAPTIONTEXT IDS_COLINACTIVECAPTIONTEXT
#define COL_WIN_SHADOW IDS_COLSHADOW
#define COL_WIN_BTNHIGHLIGHT IDS_COLBTNHIGHLIGHT
#define COL_WIN_BTNDKSHADOW IDS_COLBTNDKSHADOW
#define COL_WIN_BTNLIGHT IDS_COLBTNLIGHT
#define COL_WIN_INFOTEXT IDS_COLINFOTEXT
#define COL_WIN_INFOWINDOW IDS_COLINFOWINDOW
#define COL_WIN_MAC COL_WIN_INFOWINDOW + 1
#define RGB_BLACK (RGB( 0, 0, 0))
#define RGB_BLUE (RGB( 0, 0,255))
#define RGB_CYAN (RGB( 0,255,255))
#define RGB_GREEN (RGB( 0,255, 0))
#define RGB_MAGENTA (RGB(255, 0,255))
#define RGB_RED (RGB(255, 0, 0))
#define RGB_YELLOW (RGB(255,255, 0))
#define RGB_WHITE (RGB(255,255,255))
#define RGB_DKBLUE (RGB( 0, 0,127))
#define RGB_DKCYAN (RGB( 0,127,127))
#define RGB_DKGREEN (RGB( 0,127, 0))
#define RGB_DKMAGENTA (RGB(127, 0,127))
#define RGB_DKRED (RGB(127, 0, 0))
#define RGB_DKYELLOW (RGB(127,127, 0))
#define RGB_DKGRAY (RGB(127,127,127))
#define RGB_LTGRAY (RGB(192,192,192))
#endif// IMESHARE_INTERNAL
//WARNING: Based on an assumption that all IDSsty definitions id are
// consecutive.
#define CIMEUL (IMESTY_UL_MAX - IMESTY_UL_MIN)
typedef struct _grfsty {
union {
UINT grfsty;
struct {
UINT fBold:1;
UINT fItalic:1;
UINT fUl:1;
UINT idUl:(sizeof(UINT) * 8 - 3);
};
};
} GRFSTY;
#define COLOR_RGB 0 //RGB()
#define COLOR_WIN 1 //Windows' color scheme.
#define COLOR_FUND 2 //one of 16 fundamental color
#define COLOR_SPEC 3 //special color.
typedef struct _IMECOLORSTY {
UINT colorId;
union {
COLORREF rgb;
UINT colorWin;
UINT colorSpec;
UINT colorFund;
};
} IMECOLORSTY;
typedef struct _IMESTYLE {
union {
GRFSTY grfsty;
struct {
UINT fBold:1;
UINT fItalic:1;
UINT fUl:1;
UINT idUl:(sizeof(UINT) * 8 - 3);
};
};
union {
IMECOLORSTY colorstyText;
struct {
UINT colorIdText;
union {
COLORREF rgbText;
UINT colorWinText;
UINT colorSpecText;
UINT colorFundText;
};
};
};
union {
IMECOLORSTY colorstyBack;
struct {
UINT colorIdBack;
union {
COLORREF rgbBack;
UINT colorWinBack;
UINT colorSpecBack;
UINT colorFundBack;
};
};
};
} IMESTYLE;
#define CBIMESTYLE sizeof(IMESTYLE)
#ifdef __cplusplus
extern "C" {
#endif //__cplusplus
//Functions
IMESHAREAPI BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved);
IMESHAREAPI BOOL IMECDECL FInitIMEShare();
IMESHAREAPI void IMECDECL CustomizeIMEShare();
IMESHAREAPI void IMECDECL EndIMEShare();
//Refresh notify support
IMESHAREAPI BOOL FRefreshStyle();
//substitution
IMESHAREAPI BOOL FSupportSty(UINT sty, UINT styAltered);
//style handling
IMESHAREAPI const IMESTYLE * IMECDECL PIMEStyleFromAttr(const UINT attr);
IMESHAREAPI const IMECOLORSTY * IMECDECL PColorStyleTextFromIMEStyle(const IMESTYLE * pimestyle);
IMESHAREAPI const IMECOLORSTY * IMECDECL PColorStyleBackFromIMEStyle(const IMESTYLE * pimestyle);
#define PIMESTY(x) (PIMEStyleFromAttr(x))
#define PTEXTIMECOL(x) (PColorStyleTextFromIMEStyle(PIMESTY(x)))
#define PBACKIMECOL(x) (PColorStyleBackFromIMEStyle(PIMESTY(x)))
IMESHAREAPI BOOL IMECDECL FBoldIMEStyle(const IMESTYLE *pimestyle);
IMESHAREAPI BOOL IMECDECL FItalicIMEStyle(const IMESTYLE *pimestyle);
IMESHAREAPI BOOL IMECDECL FUlIMEStyle(const IMESTYLE *pimestyle);
IMESHAREAPI UINT IMECDECL IdUlIMEStyle(const IMESTYLE *pimestyle);
//color handling
IMESHAREAPI BOOL IMECDECL FWinIMEColorStyle(const IMECOLORSTY *pcolorstyle);
IMESHAREAPI BOOL IMECDECL FFundamentalIMEColorStyle(const IMECOLORSTY *pcolorstyle);
IMESHAREAPI BOOL IMECDECL FRGBIMEColorStyle(const IMECOLORSTY *pcolorstyle);
IMESHAREAPI BOOL IMECDECL FSpecialIMEColorStyle(const IMECOLORSTY *pcolorstyle);
IMESHAREAPI BOOL IMECDECL FSpecialTextIMEColorStyle(const IMECOLORSTY *pcolorstyle);
IMESHAREAPI BOOL IMECDECL FSpecialWindowIMEColorStyle(const IMECOLORSTY *pcolorstyle);
IMESHAREAPI COLORREF IMECDECL RGBFromIMEColorStyle(const IMECOLORSTY *pcolorstyle);
#if defined (IMESHARE_INTERNAL) || (IMESHARE_CPL)
IMESHAREAPI UINT IMECDECL IdSpecialFromIMEColorStyle(const IMECOLORSTY *pcolorstyle);
IMESHAREAPI UINT IMECDECL IdWinFromIMEColorStyle(const IMECOLORSTY *pcolorstyle);
IMESHAREAPI UINT IMECDECL IdFundamentalFromIMEColorStyle(const IMECOLORSTY *pcolorstyle);
IMESHAREAPI GRFSTY IMECDECL GrfStyIMEStyle(const IMESTYLE *pimestyle);
IMESHAREAPI BOOL IMECDECL FGetIMEStyleAttr(IMESTYLE *pimestyle, const UINT attr);
IMESHAREAPI BOOL IMECDECL FSetIMEStyleAttr(const IMESTYLE *pimestyle, const UINT attr);
IMESHAREAPI BOOL IMECDECL FSetIMEColorStyle(UINT attr, BOOL fTextCol, UINT id, DWORD col);
IMESHAREAPI BOOL IMECDECL FSetIMEStyle(const UINT attr, BOOL fBold, BOOL fItalic, BOOL fUl, UINT idUl);
IMESHAREAPI BOOL IMECDECL FSaveIMEShareSetting(void);
#endif //IMESHARE_INTERNAL
#ifdef __cplusplus
}
#endif //__cplusplus