ole32: change a pointer cast from DWORD to DWORD_PTR

Rob Shearman robertshearman at gmail.com
Mon Feb 23 07:55:25 CST 2009


2009/2/22 Austin English <austinenglish at gmail.com>:
> diff --git a/dlls/ole32/compobj.c b/dlls/ole32/compobj.c
> index b8ddba8..7360f66 100644
> --- a/dlls/ole32/compobj.c
> +++ b/dlls/ole32/compobj.c
> @@ -2007,7 +2007,7 @@ HRESULT WINAPI CoRegisterClassObject(
>     * Use the address of the chain node as the cookie since we are sure it's
>     * unique. FIXME: not on 64-bit platforms.
>     */
> -  newClass->dwCookie        = (DWORD)newClass;
> +  newClass->dwCookie        = (DWORD_PTR)newClass;
>
>    /*
>     * Since we're making a copy of the object pointer, we have to increase its

Since dwCookie is of type DWORD this is just hiding the problem. The
correct solution is to store a process-wide index and then to increase
this every time a class object is registered and use it for the
cookie. CoRevokeClassObject already looks through the list of
registered classes to find the cookie so this doesn't need to be
changed.

-- 
Rob Shearman



More information about the wine-devel mailing list