/*
 * CTL3D32 API stubs.
 *
 * Copyright (c) 2003 Dmitry Timoshkov
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#include <stdarg.h>

#include "windef.h"
#include "winbase.h"
#include "winuser.h"

static BOOL CTL3D_is_auto_subclass = FALSE;

BOOL WINAPI Ctl3dAutoSubclass(HINSTANCE hInst)
{
    CTL3D_is_auto_subclass = TRUE;
    return TRUE;
}

BOOL WINAPI Ctl3dAutoSubclassEx(HINSTANCE hInst, DWORD type)
{
    CTL3D_is_auto_subclass = TRUE;
    return TRUE;
}

BOOL WINAPI Ctl3dColorChange(void)
{
    return TRUE;
}

HBRUSH WINAPI Ctl3dCtlColor(HDC hdc, HWND hwnd)
{
    return 0;
}

HBRUSH WINAPI Ctl3dCtlColorEx(UINT msg, WPARAM wParam, LPARAM lParam)
{
    return 0;
}

LONG WINAPI Ctl3dDlgFramePaint(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    return DefWindowProcA(hwnd, msg, wParam, lParam);
}

BOOL WINAPI Ctl3dEnabled(void)
{
    return FALSE;
}

WORD WINAPI Ctl3dGetVer(void)
{
    return MAKEWORD(31,2);
}

BOOL WINAPI Ctl3dIsAutoSubclass(void)
{
    return CTL3D_is_auto_subclass;
}

BOOL WINAPI Ctl3dRegister(HINSTANCE hInst)
{
    return FALSE;
}

BOOL WINAPI Ctl3dSubclassCtl(HWND hwnd)
{
    return FALSE;
}

BOOL WINAPI Ctl3dSubclassCtlEx(HWND hwnd, int type)
{
    return FALSE;
}

BOOL WINAPI Ctl3dSubclassDlg(HWND hwnd, WORD types)
{
    return FALSE;
}

BOOL WINAPI Ctl3dSubclassDlgEx(HWND hwnd, DWORD types)
{
    return FALSE;
}

BOOL WINAPI Ctl3dUnAutoSubclass(void)
{
    CTL3D_is_auto_subclass = FALSE;
    return FALSE;
}

BOOL WINAPI Ctl3dUnregister(HINSTANCE hInst)
{
    CTL3D_is_auto_subclass = FALSE;
    return TRUE;
}

BOOL WINAPI Ctl3dUnsubclassCtl(HWND hwnd)
{
    return FALSE;
}

void WINAPI Ctl3dWinIniChange(void)
{
}

/***********************************************************************
 *		ComboWndProc3d (CTL3D32.10)
 */
LRESULT WINAPI ComboWndProc3d(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
{
    return 0;
}

/***********************************************************************
 *		BtnWndProc3d (CTL3D32.7)
 */
LRESULT WINAPI BtnWndProc3d(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
{
    return 0;
}

/***********************************************************************
 *		StaticWndProc3d (CTL3D32.11)
 */
LRESULT WINAPI StaticWndProc3d(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
{
    return 0;
}

/***********************************************************************
 *		EditWndProc3d (CTL3D32.8)
 */
LRESULT WINAPI EditWndProc3d(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
{
    return 0;
}

/***********************************************************************
 *		ListWndProc3d (CTL3D32.9)
 */
LRESULT WINAPI ListWndProc3d(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
{
    return 0;
}

/***********************************************************************
 *		Ctl3dDlgProc (CTL3D32.17)
 */
LRESULT WINAPI Ctl3dDlgProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
{
    return 0;
}