/*++

 Copyright (c) 2002 Microsoft Corporation

 Module Name:

    AutoCad.cpp

 Abstract:

    Prevent AV when IsEmptyRect is called with a bad pointer. This fixes a hard to 
    repro Watson bug.
    
 Notes:

    This is an app specific shim.

 History:

    02/13/2002 linstev Created

--*/

#include "precomp.h"

IMPLEMENT_SHIM_BEGIN(AutoCad)
#include "ShimHookMacro.h"

APIHOOK_ENUM_BEGIN
    APIHOOK_ENUM_ENTRY(IsRectEmpty)
APIHOOK_ENUM_END

/*++

 IsEmptyRect 

--*/

BOOL
APIHOOK(IsRectEmpty)(
    CONST RECT *lprc
    )
{
    if (IsBadReadPtr(lprc, sizeof(RECT))) {
        LOGN(eDbgLevelInfo, "[IsRectEmpty] invalid lprc pointer, returning TRUE");
        return TRUE;
    }

    return ORIGINAL_API(IsRectEmpty)(lprc);
}

/*++

 Register hooked functions

--*/

HOOK_BEGIN
    APIHOOK_ENTRY(USER32.DLL, IsRectEmpty)
HOOK_END

IMPLEMENT_SHIM_END