WineHQ: PATCH to fix IPersistFile::Load() and associated functions

Vincent Béron vberon at mecano.gme.usherb.ca
Sun Oct 26 11:37:24 CST 2003


Le dim 26/10/2003 à 12:20, Subhobroto Sinha a écrit :
> Hello all

Hello,

> 
> This patch has been inlined as well as attached as a
> ZIP file, so suit yourself.

Compressed patches are not the preferred way. Totally inlined is the
preferred way, then plain-text attachment (no quoted-printable stuff).
Only if the patch is way too big compress it.

> 
> All reports regaring this patch is to be sent to
> <subhobrotosinha at yahoo.com> with a proper subject
> prefixed by "IPersistFile patch" in the subject
> header.
> Just don't simply hit the 'Reply' button !

Would be easier to reach you...

> 
> This patch fixes:
> 
> (1) Stream_LoadString: Conflict of unicode strings
> being taken as LPSTR and AGAIN being converted to
> Unicode due to wrong value of SCF_UNICODE .(I have
> really NOT changed the original code, but redirected
> this call to a fixed function which I named
> wineStream_LoadString. This should remain so until
> SCF_UNICODE value is corrected) 
> (2) Stream_LoadLocation: Previously the GetPath()
> failed. It works great now.
> 
> For the uninitiated, here's what has to be done:

They won't be reading wine-devel, no need to repeat patching
instructions each time :)

> 
> Now IPersistFile::Load() should work as intended. Try
> out McCormack's 'winemenubuilder' or my WineLib
> 'linkresolve' (NOT my C++ version)
> 
> If the diff is not proper, etc, please alert me at the
> mentioned address
> 
> PS: As I am not a member of 'wine-patches',can the
> moderator be kind enough... :=)

You can choose to not receive mails from wine-patches while still being
subscribed.

> @@ -533,6 +574,14 @@
>          if( FAILED( r ) )
>              return r;
>      }
> +    //////////////////////////////////////////////////////////////////////////////////////
> +    char szTemp[MAX_PATH]={0};
> +    SHGetPathFromIDListA(This->pPidl,szTemp);
> +    This->sPath=HeapAlloc( GetProcessHeap(), 0,(strlen(szTemp)+1)*sizeof(WCHAR));
> +    MultiByteToWideChar(CP_ACP,0,szTemp,(strlen(szTemp)+1),This->sPath,(strlen(szTemp)+1));
> +    //TRACE("%s\n",szTemp);
> +    //////////////////////////////////////////////////////////////////////////////////////
> +

Please don't use // style comments. Not all C compilers accept them.

Vincent





More information about the wine-patches mailing list