たとえばこんな感じ

/* ウィンドウ クラス */
typedef struct{

/* ウィンドウの状態を定義 */
#define WINDOW_HIDE 0 /* 不可視状態 */
#define WINDOW_MINIMUM 1 /* 最小化状態 */
#define WINDOW_VISIBLE 2 /* 可視状態 */
#define WINDOW_MOVE 3 /* ウィンドウは移動中 */
#define WINDOW_RESIZE 4 /* ウィンドウはサイズ変更中 */

void* subclass; /* サブクラスへのポインタ */
Component component; /* コンポーネント本体 */
Button close_button;
Button taskbar_button;

char* title; /* ウィンドウのタイトル */
BYTE* icon; /* ウィンドウのアイコン */

BYTE status; /* 発生したイベントの種類 */
int drag_startx; /* ドラッグイベントの発生したx座標 */
int drag_starty; /* ドラッグイベントの発生したy座標 */

/* イベント拡張 */
void (*resize_action)(Component*); /* ウィンドウサイズを変えた時の処理 */
void (*close_action)(Component*); /* ウィンドウを閉じた時の処理 */
void (*paint)(Component*); /* 描画処理 */

} Window;