/*
 * oleacc.dll
 *
 * Copyright (c) TransGaming Technologies 2003
 * 
 */

#include "windef.h"
#include "winbase.h"
#include "winreg.h"
#include "wine/debug.h"
#include "winerror.h"
#include "winnt.h"

#include "oleacc.h"

WINE_DEFAULT_DEBUG_CHANNEL(oleacc);

BOOL WINAPI OLEACC_Init(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
    TRACE("(0x%08x, %ld, %p)\n",hinstDLL,fdwReason,lpvReserved);

    if (fdwReason == DLL_PROCESS_ATTACH)
    {
        /* FIXME: Initialisation */
    }
    else if (fdwReason == DLL_PROCESS_DETACH)
    {
        /* FIXME: Cleanup */
    }

    return TRUE;
}

/******************************************************************
 *		AccessibleChildren (OLEACC.@)
 *
 *
 */
HRESULT WINAPI OLEACC_AccessibleChildren(IAccessible * paccContainer, LONG iChildStart, LONG cChildren, VARIANT * rgvarChildren, LONG * pcObtained)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		AccessibleObjectFromEvent (OLEACC.@)
 *
 *
 */
HRESULT WINAPI OLEACC_AccessibleObjectFromEvent(HWND hwnd, DWORD dwId, DWORD dwChildId, IAccessible ** ppacc, VARIANT * pvarChild)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		AccessibleObjectFromPoint (OLEACC.@)
 *
 *
 */
HRESULT WINAPI OLEACC_AccessibleObjectFromPoint(POINT ptScreen, IAccessible ** ppacc, VARIANT * pvarChild)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		AccessibleObjectFromWindow (OLEACC.@)
 *
 *
 */
HRESULT WINAPI OLEACC_AccessibleObjectFromWindow(HWND hwnd, DWORD dwId, REFIID riid, void ** ppvObject)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		CreateStdAccessibleObject (OLEACC.@)
 *
 *
 */
HRESULT WINAPI OLEACC_CreateStdAccessibleObject(HWND hwnd, LONG idObject, REFIID riid, void ** ppvObject)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		CreateStdAccessibleProxyA (OLEACC.@)
 *
 *
 */
HRESULT WINAPI OLEACC_CreateStdAccessibleProxyA(HWND hwnd, LPSTR pszClassName, LONG idObject,
                                        REFIID riidInterface, void **ppvObject)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		CreateStdAccessibleProxyW (OLEACC.@)
 *
 *
 */
HRESULT WINAPI OLEACC_CreateStdAccessibleProxyW(HWND hwnd, LPWSTR pszClassName, LONG idObject,
                                        REFIID riidInterface, void **ppvObject)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		DllCanUnloadNow (OLEACC.@)
 *
 *
 */
HRESULT WINAPI OLEACC_DllCanUnloadNow(void)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		DllGetClassObject (OLEACC.@)
 *
 *
 */
HRESULT WINAPI OLEACC_DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID * ppv)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		DllRegisterServer (OLEACC.@)
 *
 *
 */
HRESULT WINAPI OLEACC_DllRegisterServer(void)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		DllUnregisterServer (OLEACC.@)
 *
 *
 */
HRESULT WINAPI OLEACC_DllUnregisterServer()
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		GetOleaccVersionInfo (OLEACC.@)
 *
 *
 */
#if 0
__stdcall OLEACC_GetOleaccVersionInfo()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		GetRoleTextA (OLEACC.@)
 *
 *
 */
UINT WINAPI OLEACC_GetRoleTextA(DWORD lRole, LPSTR lpszRole, UINT cchRoleMax)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		GetRoleTextW (OLEACC.@)
 *
 *
 */
UINT WINAPI OLEACC_GetRoleTextW(DWORD lRole, LPWSTR lpszRole, UINT cchRoleMax)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		GetStateTextA (OLEACC.@)
 *
 *
 */
UINT WINAPI OLEACC_GetStateTextA(DWORD lStateBit, LPSTR lpszState, UINT cchState)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		GetStateTextW (OLEACC.@)
 *
 *
 */
UINT WINAPI OLEACC_GetStateTextW(DWORD lStateBit, LPWSTR lpszState, UINT cchState)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		IID_IAccessible (OLEACC.@)
 *
 *
 */
#if 0
__stdcall OLEACC_IID_IAccessible()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		IID_IAccessibleHandler (OLEACC.@)
 *
 *
 */
#if 0
__stdcall OLEACC_IID_IAccessibleHandler()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		LIBID_Accessibility (OLEACC.@)
 *
 *
 */
#if 0
__stdcall OLEACC_LIBID_Accessibility()
{
    /* @stub in .spec */
}
#endif


/******************************************************************
 *		LresultFromObject (OLEACC.@)
 *
 *
 */
LRESULT WINAPI OLEACC_LresultFromObject(REFIID riid, WPARAM wParam, LPUNKNOWN punk)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		ObjectFromLresult (OLEACC.@)
 *
 *
 */
HRESULT WINAPI OLEACC_ObjectFromLresult(LRESULT lResult, REFIID riid, WPARAM wParam, void ** ppvObject)
{
    FIXME(":stub\n");
    return 0;
}


/******************************************************************
 *		WindowFromAccessibleObject (OLEACC.@)
 *
 *
 */
HRESULT WINAPI OLEACC_WindowFromAccessibleObject(IAccessible * arg0, HWND * phwnd)
{
    FIXME(":stub\n");
    return 0;
}


