_SHExpandEnvironmentStrings() should return input string if no % found to expand?

James Hawkins truiken at gmail.com
Sat Oct 23 18:35:28 CDT 2004


The reason why I said to ignore this patch is because there has to be
both an A and   a W version of it.  I'm pretty sure that this cast:

(PROTOCOL_INFOA *)buffer

from a LPWSAPROTOCOL_INFOW structure isn't going to work. 
WSAPROTOCOL_INFO and PROTOCOL_INFO don't even have the same fields:

typedef struct _WSAPROTOCOL_INFOW
{
    DWORD dwServiceFlags1;
    DWORD dwServiceFlags2;
    DWORD dwServiceFlags3;
    DWORD dwServiceFlags4;
    DWORD dwProviderFlags;
    GUID ProviderId;
    DWORD dwCatalogEntryId;
    WSAPROTOCOLCHAIN ProtocolChain;
    int iVersion;
    int iAddressFamily;
    int iMaxSockAddr;
    int iMinSockAddr;
    int iSocketType;
    int iProtocol;
    int iProtocolMaxOffset;
    int iNetworkByteOrder;
    int iSecurityScheme;
    DWORD dwMessageSize;
    DWORD dwProviderReserved;
    WCHAR szProtocol[WSAPROTOCOL_LEN+1];
} WSAPROTOCOL_INFOW, *LPWSAPROTOCOL_INFOW;

typedef  struct _PROTOCOL_INFOW
{
         DWORD   dwServiceFlags;
         INT     iAddressFamily;
         INT     iMaxSockAddr;
         INT     iMinSockAddr;
         INT     iSocketType;
         INT     iProtocol;
         DWORD   dwMessageSize;
         LPWSTR  lpProtocol;
} PROTOCOL_INFOW, *PPROTOCOL_INFOW, *LPPROTOCOL_INFOW;

To implement this the way you wanted, by calling WSAEnumProtocols,
you'd have to make an A and W version, and in each of those you would
have to make the appropriate PROTOCOL_INFO struct by pulling out the
relevant fields from WSAPROTOCOL_INFO.  That is why I didn't want my
version committed.


On Sun, 24 Oct 2004 00:17:35 +0200, Hans Leidekker <hans at it.vu.nl> wrote:
> On Saturday 23 October 2004 21:00, Dan Kegel wrote:
> 
> > I'm trying to install an app using
> > Wine cvs as of about Sat Oct 23 07:00:00 PDT 2004
> > plus the patch http://article.gmane.org/gmane.comp.emulators.wine.patches/11184
> > from James Hawkins <truiken at gmail.com>
> > to get around the problem that the program terminates immediately
> > if it can't find at least a stub for WSCEnumProtocols.
> 
> WSCEnumProtocols is an elaboration on WSAEnumProtocols for which we
> already have an implementation. This patch simply uses the existing
> implementation.
> 
>  -Hans
> 
> Changelog:
>   Implement WSCEnumProtocols.
> 
> 
> 


-- 
James Hawkins



More information about the wine-patches mailing list