Implemented syslink control.

This commit is contained in:
Thomas Weidenmüller 2004-08-06 19:17:49 +00:00 committed by Alexandre Julliard
parent ecff61c8a3
commit 9d6f88c952
4 changed files with 1752 additions and 0 deletions

View File

@ -30,6 +30,7 @@ C_SRCS = \
smoothscroll.c \
string.c \
status.c \
syslink.c \
tab.c \
toolbar.c \
tooltips.c \

View File

@ -101,6 +101,8 @@ extern void REBAR_Register(void);
extern void REBAR_Unregister(void);
extern void STATUS_Register(void);
extern void STATUS_Unregister(void);
extern void SYSLINK_Register(void);
extern void SYSLINK_Unregister(void);
extern void TAB_Register(void);
extern void TAB_Unregister(void);
extern void TOOLBAR_Register(void);
@ -174,6 +176,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
LISTVIEW_Register ();
PROGRESS_Register ();
STATUS_Register ();
SYSLINK_Register ();
TAB_Register ();
TOOLBAR_Register ();
TOOLTIPS_Register ();
@ -198,6 +201,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
PROGRESS_Unregister ();
REBAR_Unregister ();
STATUS_Unregister ();
SYSLINK_Unregister ();
TAB_Unregister ();
TOOLBAR_Unregister ();
TOOLTIPS_Unregister ();
@ -711,6 +715,10 @@ InitCommonControlsEx (LPINITCOMMONCONTROLSEX lpInitCtrls)
NATIVEFONT_Register ();
break;
case ICC_LINK_CLASS:
SYSLINK_Register ();
break;
default:
FIXME("Unknown class! dwICC=0x%lX\n", dwMask);
break;

1682
dlls/comctl32/syslink.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -4505,6 +4505,67 @@ INT WINAPI DPA_Search(HDPA, LPVOID, INT, PFNDPACOMPARE, LPARAM, UINT);
BOOL WINAPI Str_SetPtrW (LPWSTR *, LPCWSTR);
/**************************************************************************
* SysLink control
*/
#if defined(__GNUC__)
# define WC_LINK (const WCHAR []){ 'S','y','s','L','i','n','k',0 }
#elif defined(_MSC_VER)
# define WC_LINK L"SysLink"
#else
static const WCHAR WC_LINK[] = { 'S','y','s','L','i','n','k',0 };
#endif
/* SysLink messages */
#define LM_HITTEST (WM_USER + 768)
#define LM_GETIDEALHEIGHT (WM_USER + 769)
#define LM_SETITEM (WM_USER + 770)
#define LM_GETITEM (WM_USER + 771)
/* SysLink links flags */
#define LIF_ITEMINDEX 1
#define LIF_STATE 2
#define LIF_ITEMID 4
#define LIF_URL 8
/* SysLink links states */
#define LIS_FOCUSED 1
#define LIS_ENABLED 2
#define LIS_VISITED 4
/* SysLink misc. */
#define INVALID_LINK_INDEX (-1)
#define MAX_LINKID_TEXT 48
#define L_MAX_URL_LENGTH 2084
/* SysLink structures */
typedef struct tagLITEM
{
UINT mask;
int iLink;
UINT state;
UINT stateMask;
WCHAR szID[MAX_LINKID_TEXT];
WCHAR szUrl[L_MAX_URL_LENGTH];
} LITEM, *PLITEM;
typedef struct tagLHITTESTINFO
{
POINT pt;
LITEM item;
} LHITTESTINFO, *PLHITTESTINFO;
typedef struct tagNMLINK
{
NMHDR hdr;
LITEM item ;
} NMLINK, *PNMLINK;
#ifdef __cplusplus
}
#endif