
/******************************************************************************\
*       This is a part of the Microsoft Source Code Samples.
*       Copyright (C) 1993-1996 Microsoft Corporation.
*       All rights reserved.
*       This source code is only intended as a supplement to
*       Microsoft Development Tools and/or WinHelp documentation.
*       See these sources for detailed information regarding the
*       Microsoft samples programs.
\******************************************************************************/


// STYLES

#define ICSTY_OWNERDRAW     0x0001    // set if the central information is not
                                      // standard text.
#define ICSTY_SHOWFOCUS     0x0002    // set to allow focus painting an movement

#define ICSTY_HASFOCUS      0x8000

#define ICN_OWNERDRAW       (WM_USER + 676)     // notifies to draw
            // wParam=id, lParam=OWNERDRAWPS FAR *
#define ICN_HASFOCUS        (WM_USER + 677)     // notifies of focus set
            // wParam=fFocus, lParam=(hMemCtrlData, hwnd)
#define ICN_BYEBYE          (WM_USER + 678)     // notifies of imminent death
            // wParam=hwnd, lParam=dwUser

#define ICM_SETSTRING       (WM_USER + 776)     // alters a string
            // wParam=index, lParam=LPSTR

#define ICSID_UL            0
#define ICSID_UC            1
#define ICSID_UR            2
#define ICSID_LL            3
#define ICSID_LC            4
#define ICSID_LR            5
#define ICSID_CENTER        6

#define GWL_USER            0
#define GWL_INFODATA        4
#define ICCBWNDEXTRA        8

HWND CreateInfoCtrl(
LPTSTR szTitle,
INT x,
INT y,
INT cx,
INT cy,
HWND hwndParent,
HANDLE hInst,
LPTSTR pszUL,                // NULLs here are fine.
LPTSTR pszUC,
LPTSTR pszUR,
LPTSTR pszLL,
LPTSTR pszLC,
LPTSTR pszLR,
DWORD  style,
HMENU id,
DWORD dwUser);

VOID MyCascadeChildWindows(HWND hwndParent);
VOID TileChildWindows(HWND hwndParent);

typedef struct {
    PTSTR pszUL;
    PTSTR pszUC;
    PTSTR pszUR;
    PTSTR pszLL;
    PTSTR pszLC;
    PTSTR pszLR;
    PTSTR pszCenter;
    DWORD  style;
    RECT rcFocusUL;
    RECT rcFocusUR;
    RECT rcFocusLL;
    RECT rcFocusLR;
    HANDLE hInst;
} INFOCTRL_DATA;

typedef struct {
    RECT rcBound;
    RECT rcPaint;
    HDC  hdc;
    DWORD dwUser;
} OWNERDRAWPS;

