Ignore:
Timestamp:
Jun 12, 2000, 10:09:48 AM (25 years ago)
Author:
phaller
Message:

.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/shlwapi/shlwapi.cpp

    r3684 r3687  
    1 /* $Id: shlwapi.cpp,v 1.7 2000-06-11 08:44:54 phaller Exp $ */
     1/* $Id: shlwapi.cpp,v 1.8 2000-06-12 08:09:40 phaller Exp $ */
    22
    33/*
     
    1212 * Copyright 1997 Uwe Bonnes
    1313 * Copyright 1999 Jens Wiessner
     14 *
     15 * Two functions (WINE_StringFromCLSID and StringFromGUID2) are directly
     16 * borrowed from ole32/clsid.cpp. This is to avoid the direct dependency
     17 * between SHLWAPI.DLL and the OLE32.DLL.
    1418 */
    1519
     
    3943#include <win\winerror.h>
    4044
     45// import OLE support
     46#include <win/wtypes.h>
     47#define OLE_OK 0
     48
    4149
    4250ODINDEBUGCHANNEL(SHLWAPI)
     
    5765}
    5866
     67
     68// ----------------------------------------------------------------------
     69// WINE_StringFromCLSID
     70// ----------------------------------------------------------------------
     71HRESULT WINAPI WINE_StringFromCLSID(const CLSID *rclsid, LPSTR idstr)
     72{
     73//    dprintf(("OLE32: WINE_StringFromCLSID"));
     74
     75    if (rclsid == NULL)
     76    {
     77        dprintf(("       clsid: (NULL)"));
     78        *idstr = 0;
     79        return E_FAIL;
     80    }
     81
     82    // Setup new string...
     83    sprintf(idstr, "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
     84            rclsid->Data1,
     85            rclsid->Data2,
     86            rclsid->Data3,
     87            rclsid->Data4[0],
     88            rclsid->Data4[1],
     89            rclsid->Data4[2],
     90            rclsid->Data4[3],
     91            rclsid->Data4[4],
     92            rclsid->Data4[5],
     93            rclsid->Data4[6],
     94            rclsid->Data4[7]);
     95
     96//    dprintf(("       clsid: %s", idstr));
     97
     98    return OLE_OK;
     99}
     100
     101// ----------------------------------------------------------------------
     102// StringFromGUID2
     103// ----------------------------------------------------------------------
     104int WINAPI StringFromGUID2(REFGUID rguid, LPOLESTR lpsz, int cbMax)
     105{
     106// NB cbMax is a CHARACTER count not a BYTE count... :-)
     107    char        tmp[50];
     108    size_t      strLen;
     109
     110    // Setup new string...
     111    WINE_StringFromCLSID(rguid, tmp);
     112
     113    strLen = (strlen(tmp) + 1);
     114    if (strLen > cbMax)
     115        strLen = cbMax;
     116
     117    AsciiToUnicodeN(tmp, lpsz, strLen);
     118
     119    return strLen;  // Num CHARACTERS including 0 terminator
     120}
     121
     122
     123/*****************************************************************************
     124 * Name      : DllGetVersion
     125 * Purpose   : Return version information about the DLL used
     126 * Parameters:
     127 * Variables :
     128 * Result    :
     129 * Remark    : SHLWAPI.446
     130 * Status    : UNTESTED
     131 *
     132 * Author    :
     133 *****************************************************************************/
     134
     135typedef struct tagDLLVERSION
     136{
     137  DWORD dwLength; // == 0x14
     138  DWORD dwMajorVersion;
     139  DWORD dwMinorVersion;
     140  DWORD dwRevision;
     141  DWORD dwBuildNumber;
     142} DLLVERSION, *LPDLLVERSION;
     143
     144
     145ODINFUNCTION1(DWORD,        DllGetVersion,
     146              LPDLLVERSION, lpBuffer)
     147{
     148  if (lpBuffer == NULL)
     149    return E_INVALIDARG; // error code: invalid parameters
     150
     151  if (IsBadWritePtr(lpBuffer,
     152                    20))
     153    return E_INVALIDARG;
     154 
     155  if (lpBuffer->dwLength != sizeof(DLLVERSION))
     156    return E_INVALIDARG;
     157     
     158  // our current version is 5.0.2314.1000
     159  lpBuffer->dwMajorVersion = 5;
     160//lpBuffer->dwMinorVersion = 0;  // @@@PH not touched in windows code ?
     161  lpBuffer->dwRevision     = 2314;
     162  lpBuffer->dwBuildNumber  = 1;
     163 
     164  return ERROR_SUCCESS;
     165}
Note: See TracChangeset for help on using the changeset viewer.