Ignore:
Timestamp:
Sep 17, 2000, 12:31:07 PM (25 years ago)
Author:
davidr
Message:

Updates from wine

File:
1 edited

Legend:

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

    r872 r4274  
    1 /* $Id: iunknown.cpp,v 1.3 1999-09-08 11:29:27 davidr Exp $ */
     1/* $Id: iunknown.cpp,v 1.4 2000-09-17 10:31:05 davidr Exp $ */
    22/*
    33 *
     
    2323// Local Data
    2424// ======================================================================
     25
    2526typedef struct
    2627{
    27     /* IUnknown fields */
    2828    ICOM_VTABLE(IUnknown)* lpvtbl;
    2929    DWORD                  ref;
    3030} IUnknownImpl;
    3131
    32 static ULONG WIN32API IUnknown_fnAddRef(LPUNKNOWN iface);
    33 static ULONG WIN32API IUnknown_fnRelease(LPUNKNOWN iface);
    34 static HRESULT WIN32API IUnknown_fnQueryInterface(LPUNKNOWN iface, REFIID refiid, LPVOID * obj);
     32static ULONG    WIN32API IUnknownImpl_AddRef(LPUNKNOWN iface);
     33static ULONG    WIN32API IUnknownImpl_Release(LPUNKNOWN iface);
     34static HRESULT  WIN32API IUnknownImpl_QueryInterface(LPUNKNOWN iface,
     35                                REFIID riid, LPVOID * ppvObject);
    3536
    36 static ICOM_VTABLE(IUnknown) uvt =
     37static ICOM_VTABLE(IUnknown) IUnknownVt =
    3738{
    38     IUnknown_fnQueryInterface,
    39     IUnknown_fnAddRef,
    40     IUnknown_fnRelease
     39    IUnknownImpl_QueryInterface,
     40    IUnknownImpl_AddRef,
     41    IUnknownImpl_Release
    4142};
    4243
     
    4647
    4748// ----------------------------------------------------------------------
    48 // IUnknown_fnAddRef
     49// IUnknownImpl_AddRef
    4950// ----------------------------------------------------------------------
    50 static ULONG WIN32API IUnknown_fnAddRef(LPUNKNOWN iface)
     51static ULONG WIN32API IUnknownImpl_AddRef(LPUNKNOWN iface)
    5152{
    5253    ICOM_THIS(IUnknownImpl, iface);
    5354
    54     dprintf(("OLE32: (%p)->AddRef()", This));
     55    dprintf(("OLE32: IUnknown(%p)->AddRef()", This));
    5556
    5657    return ++(This->ref);
     
    5859
    5960// ----------------------------------------------------------------------
    60 // IUnknown_fnRelease
     61// IUnknownImpl_Release
    6162// ----------------------------------------------------------------------
    62 static ULONG WIN32API IUnknown_fnRelease(LPUNKNOWN iface)
     63static ULONG WIN32API IUnknownImpl_Release(LPUNKNOWN iface)
    6364{
    6465    ICOM_THIS(IUnknownImpl, iface);
    6566
    66     dprintf(("OLE32: (%p)->Release()\n", This));
     67    dprintf(("OLE32: IUnknown(%p)->Release()\n", This));
    6768
    6869    if (--(This->ref) == 0)
     
    7576
    7677// ----------------------------------------------------------------------
    77 // Initialize
     78// IUnknownImpl_QueryInterface
    7879// ----------------------------------------------------------------------
    79 static HRESULT WIN32API IUnknown_fnQueryInterface(LPUNKNOWN iface, REFIID refiid, LPVOID *obj)
     80static HRESULT WIN32API IUnknownImpl_QueryInterface(LPUNKNOWN iface, REFIID riid, LPVOID *ppvObject)
    8081{
    8182    ICOM_THIS(IUnknownImpl, iface);
    8283
    8384#ifdef DEBUG
    84     oStringA    tRefiid(refiid);
    85     dprintf(("OLE32: (%p)->QueryInterface(%s, %p)\n", This, (char *)tRefiid, obj));
     85    oStringA    tRiid(riid);
     86    dprintf(("OLE32: IUnknown(%p)->QueryInterface(%s)\n", This, (char *)tRiid));
    8687#endif
    8788
    88     if (!memcmp(&IID_IUnknown, refiid, sizeof(IID_IUnknown)))
     89    if (IsEqualIID(&IID_IUnknown, riid))
    8990    {
    90         *obj = This;
    91         return 0;
     91        dprintf(("       ->IUnknown"));
     92        *ppvObject = &(This->lpvtbl);
    9293    }
    93     return OLE_E_ENUM_NOMORE;
     94    else
     95    {
     96        dprintf(("       ->E_NOINTERFACE"));
     97        return E_NOINTERFACE;
     98    }
     99
     100    // Query Interface always increases the reference count by one...
     101    IUnknownImpl_AddRef(iface);
     102
     103    return S_OK;
    94104}
    95105
    96106// ----------------------------------------------------------------------
    97 // Initialize
     107// IUnknownImpl_Constructor
    98108// ----------------------------------------------------------------------
    99 LPUNKNOWN IUnknown_Constructor()
     109LPUNKNOWN IUnknownImpl_Constructor()
    100110{
    101111    IUnknownImpl *      unk;
    102112
    103113    unk = (IUnknownImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IUnknownImpl));
    104     unk->lpvtbl = &uvt;
     114    unk->lpvtbl = &IUnknownVt;
    105115    unk->ref    = 1;
    106116    return (LPUNKNOWN)unk;
Note: See TracChangeset for help on using the changeset viewer.