Changeset 3170 for trunk/src


Ignore:
Timestamp:
Mar 19, 2000, 11:33:36 PM (25 years ago)
Author:
davidr
Message:

Created ReadClassStm, WriteClassStm, ProgIDFromCLSID

Location:
trunk/src/ole32
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/ole32/clsid.cpp

    r3167 r3170  
    1 /* $Id: clsid.cpp,v 1.10 2000-03-19 15:33:05 davidr Exp $ */
     1/* $Id: clsid.cpp,v 1.11 2000-03-19 22:32:12 davidr Exp $ */
    22/*
    33 *
     
    332332}
    333333
     334// ----------------------------------------------------------------------
     335// ReadClassStm
     336// ----------------------------------------------------------------------
     337HRESULT WIN32API ReadClassStm(IStream *pStm, CLSID *rclsid)
     338{
     339    ULONG nbByte;
     340    HRESULT res;
     341
     342    dprintf(("OLE32: ReadClassStm"));
     343
     344    if (rclsid == NULL)
     345        return E_INVALIDARG;
     346
     347    res = IStream_Read(pStm,(void*)rclsid,sizeof(CLSID),&nbByte);
     348
     349    if (FAILED(res))
     350        return res;
     351
     352    if (nbByte != sizeof(CLSID))
     353        return S_FALSE;
     354
     355    return S_OK;
     356}
     357
     358// ----------------------------------------------------------------------
     359// WriteClassStm
     360// ----------------------------------------------------------------------
     361HRESULT WIN32API WriteClassStm(IStream *pStm, REFCLSID rclsid)
     362{
     363    dprintf(("OLE32: WriteClassStm"));
     364
     365    if (rclsid == NULL)
     366        return E_INVALIDARG;
     367
     368    return IStream_Write(pStm, rclsid, sizeof(CLSID), NULL);
     369}
     370
     371// ----------------------------------------------------------------------
     372// ProgIDFromCLSID
     373// ----------------------------------------------------------------------
     374HRESULT WIN32API ProgIDFromCLSID(REFCLSID clsid, LPOLESTR *lplpszProgID)
     375{
     376    oStringA            tClsId(clsid);
     377    oStringA            szKey("CLSID\\");
     378    LONG                lDataLen = 255;
     379    oStringA            szProgID(lDataLen, 1);
     380    HKEY                hKey;
     381    HRESULT             rc;
     382    LPOLESTR            tmp;
     383    LPMALLOC            pMllc;
     384
     385    dprintf(("OLE32: ProgIDFromCLSID"));
     386    dprintf(("       clsid = %s", (char *)tClsId));
     387
     388    szKey += tClsId + "\\ProgID";
     389
     390    // Open key...
     391    if (RegOpenKeyA(HKEY_CLASSES_ROOT, szKey, &hKey))
     392        return REGDB_E_CLASSNOTREG;
     393
     394    // Get default string from the key...
     395    rc = RegQueryValueA(hKey, NULL, szProgID, &lDataLen);
     396    RegCloseKey(hKey);
     397    if (rc != 0)
     398        return REGDB_E_CLASSNOTREG;
     399
     400    if (CoGetMalloc(0, &pMllc))         // Singleton instance, no need to release
     401        return E_OUTOFMEMORY;
     402
     403    tmp = (LPOLESTR)IMalloc_Alloc(pMllc, (strlen(szProgID) + 1) * 2);
     404    if (tmp == NULL)
     405        return E_OUTOFMEMORY;
     406
     407    AsciiToUnicode(szProgID, tmp);
     408    *lplpszProgID = tmp;
     409
     410    return S_OK;
     411}
  • trunk/src/ole32/stubs.cpp

    r3167 r3170  
    1 /* $Id: stubs.cpp,v 1.11 2000-03-19 15:33:09 davidr Exp $ */
     1/* $Id: stubs.cpp,v 1.12 2000-03-19 22:32:13 davidr Exp $ */
    22/*
    33 * Win32 COM/OLE stubs for OS/2
     
    1515#include "ole32.h"
    1616
     17//*******************************************************************************
     18//*******************************************************************************
     19HRESULT WIN32API DllDebugObjectRPCHook()
     20{
     21    dprintf(("OLE32: DllDebugObjectRPCHook, UNKNOWN API - stub"));
     22    return 0;
     23}
     24//*******************************************************************************
     25//*******************************************************************************
     26HRESULT WIN32API DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
     27{
     28    dprintf(("OLE32: DllGetClassObject - stub"));
     29    return E_OUTOFMEMORY;
     30}
     31//*******************************************************************************
     32//*******************************************************************************
     33HRESULT WIN32API DllGetClassObjectWOW()
     34{
     35    dprintf(("OLE32: DllGetClassObjectWOW, UNKNOWN API - stub"));
     36    return 0;
     37}
    1738//*****************************************************************************
    1839//*****************************************************************************
     
    227248    dprintf(("OLE32: CreatePointerMoniker - stub"));
    228249    return E_OUTOFMEMORY;
    229 }
    230 //*******************************************************************************
    231 //*******************************************************************************
    232 HRESULT WIN32API DllDebugObjectRPCHook()
    233 {
    234     dprintf(("OLE32: DllDebugObjectRPCHook, UNKNOWN API - stub"));
    235     return 0;
    236 }
    237 //*******************************************************************************
    238 //*******************************************************************************
    239 HRESULT WIN32API DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
    240 {
    241     dprintf(("OLE32: DllGetClassObject - stub"));
    242     return E_OUTOFMEMORY;
    243 }
    244 //*******************************************************************************
    245 //*******************************************************************************
    246 HRESULT WIN32API DllGetClassObjectWOW()
    247 {
    248     dprintf(("OLE32: DllGetClassObjectWOW, UNKNOWN API - stub"));
    249     return 0;
    250250}
    251251//*******************************************************************************
     
    567567//*******************************************************************************
    568568//*******************************************************************************
    569 HRESULT WIN32API ProgIDFromCLSID(REFCLSID clsid, LPOLESTR *lplpszProgID)
    570 {
    571     dprintf(("OLE32: ProgIDFromCLSID - stub"));
    572     return(REGDB_E_CLASSNOTREG);
    573 }
    574 //*******************************************************************************
    575 //*******************************************************************************
    576 HRESULT WIN32API ReadClassStm(IStream *pStm, CLSID *pclsid)
    577 {
    578     dprintf(("OLE32: ReadClassStm - stub"));
    579     return(STG_E_READFAULT);
    580 }
    581 //*******************************************************************************
    582 //*******************************************************************************
    583569HRESULT WIN32API ReadFmtUserTypeStg(IStorage *pStg, CLIPFORMAT *pcf,
    584570                                       LPWSTR *lplpszUserType)
     
    651637    return(E_OUTOFMEMORY);
    652638}
    653 //*******************************************************************************
    654 //*******************************************************************************
    655 HRESULT WIN32API WriteClassStm(IStream *pStm, REFCLSID rclsid)
    656 {
    657     dprintf(("OLE32: WriteClassStm - stub"));
    658     return(STG_E_MEDIUMFULL);
    659 }
     639
    660640//*******************************************************************************
    661641//*******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.