/*
**
**    IconEdit.h
**
*/

#ifndef _ICONEDIT_H_
#define _ICONEDIT_H_

#include <windows.h>

#pragma message("Disable pointer truncation")
#pragma warning(disable : 4311)
#pragma warning(disable : 4244)
#pragma warning(disable : 4312)


class IconEdit
{
public:
    IconEdit(HWND hParent, LPRECT pCoord, UINT uUniqueID=0);
    IconEdit(HWND hParent, UINT nIDEdit);
    ~IconEdit();

public:
    HWND getSafeHwnd() { return m_hWndEdit; }
    VOID setIcon(UINT, int format=32);
    VOID setIcon(HICON);

private:
    VOID prepareWnd();
    VOID subClassEdit();
    VOID createEmbededStatic();

    LRESULT __stdcall EditProc(HWND, UINT, WPARAM, LPARAM);
    static LRESULT __stdcall Global_EditProc(HWND, UINT, WPARAM, LPARAM);

private:
    HWND    m_hWndParent;
    HWND    m_hWndEdit;
    HWND    m_hWndStatic;
    RECT    m_rcCoord;
    HICON   m_hIcon;
    WNDPROC m_pOldProcEdit;
    bool    m_bEditDyn;
};


#endif//_ICONEDIT_H_