ReactOS 0.4.15-dev-7961-gdcf9eb0
mrulist.cpp File Reference
#include <windef.h>
#include <winbase.h>
#include <winreg.h>
#include <objbase.h>
#include <oleauto.h>
#include <shlobj.h>
#include <shlobj_undoc.h>
#include <shlguid_undoc.h>
#include <shlwapi.h>
#include <shlwapi_undoc.h>
#include <strsafe.h>
#include "shdocvw.h"
#include <wine/debug.h>
Include dependency graph for mrulist.cpp:

Go to the source code of this file.

Classes

class  CSafeMutex
 
class  CMruBase
 
class  CMruShortList
 
class  CMruLongList
 
class  CMruNode
 
class  CMruPidlList
 
class  CMruClassFactory
 

Macros

#define COBJMACROS
 
#define SLOT_LOADED   0x1
 
#define SLOT_SET   0x2
 
#define COMPARE_BY_MEMCMP   0x0
 
#define COMPARE_BY_STRCMPIW   0x1
 
#define COMPARE_BY_STRCMPW   0x2
 
#define COMPARE_BY_IEILISEQUAL   0x3
 
#define COMPARE_BY_MASK   0xF
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (shdocvw)
 
void __cxa_pure_virtual (void)
 
BOOL IEILIsEqual (LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2, BOOL bUnknown)
 
 STDMETHODIMP_ (ULONG) CMruBase
 
EXTERN_C HRESULT CMruLongList_CreateInstance (DWORD_PTR dwUnused1, void **ppv, DWORD_PTR dwUnused3)
 
EXTERN_C HRESULT CMruPidlList_CreateInstance (DWORD_PTR dwUnused1, void **ppv, DWORD_PTR dwUnused3)
 
EXTERN_C HRESULT CMruClassFactory_CreateInstance (REFIID riid, void **ppv)
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 8 of file mrulist.cpp.

◆ COMPARE_BY_IEILISEQUAL

#define COMPARE_BY_IEILISEQUAL   0x3

Definition at line 59 of file mrulist.cpp.

◆ COMPARE_BY_MASK

#define COMPARE_BY_MASK   0xF

Definition at line 60 of file mrulist.cpp.

◆ COMPARE_BY_MEMCMP

#define COMPARE_BY_MEMCMP   0x0

Definition at line 56 of file mrulist.cpp.

◆ COMPARE_BY_STRCMPIW

#define COMPARE_BY_STRCMPIW   0x1

Definition at line 57 of file mrulist.cpp.

◆ COMPARE_BY_STRCMPW

#define COMPARE_BY_STRCMPW   0x2

Definition at line 58 of file mrulist.cpp.

◆ SLOT_LOADED

#define SLOT_LOADED   0x1

Definition at line 52 of file mrulist.cpp.

◆ SLOT_SET

#define SLOT_SET   0x2

Definition at line 53 of file mrulist.cpp.

Function Documentation

◆ __cxa_pure_virtual()

void __cxa_pure_virtual ( void  )

Definition at line 35 of file mrulist.cpp.

36{
37 ERR("__cxa_pure_virtual\n");
39}
#define ERR(fmt,...)
Definition: debug.h:110
void WINAPI DebugBreak(void)

◆ CMruClassFactory_CreateInstance()

EXTERN_C HRESULT CMruClassFactory_CreateInstance ( REFIID  riid,
void **  ppv 
)

Definition at line 1398 of file mrulist.cpp.

1399{
1400 CMruClassFactory *pFactory = new CMruClassFactory();
1401 if (!pFactory)
1402 return E_OUTOFMEMORY;
1403
1404 HRESULT hr = pFactory->QueryInterface(riid, ppv);
1405 pFactory->Release();
1406 return hr;
1407}
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObj) override
Definition: mrulist.cpp:1361
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
ULONG Release()
HRESULT hr
Definition: shlfolder.c:183

Referenced by DllGetClassObject().

◆ CMruLongList_CreateInstance()

EXTERN_C HRESULT CMruLongList_CreateInstance ( DWORD_PTR  dwUnused1,
void **  ppv,
DWORD_PTR  dwUnused3 
)

Definition at line 737 of file mrulist.cpp.

738{
739 UNREFERENCED_PARAMETER(dwUnused1);
740 UNREFERENCED_PARAMETER(dwUnused3);
741
742 TRACE("%p %p %p\n", dwUnused1, ppv, dwUnused3);
743
744 if (!ppv)
745 return E_POINTER;
746
747 CMruLongList *pMruList = new CMruLongList();
748 *ppv = static_cast<IMruDataList*>(pMruList);
749 TRACE("%p\n", *ppv);
750
751 return S_OK;
752}
#define S_OK
Definition: intsafe.h:52
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
#define TRACE(s)
Definition: solgame.cpp:4
#define E_POINTER
Definition: winerror.h:2365

Referenced by CMruClassFactory::CreateInstance(), and DllGetClassObject().

◆ CMruPidlList_CreateInstance()

EXTERN_C HRESULT CMruPidlList_CreateInstance ( DWORD_PTR  dwUnused1,
void **  ppv,
DWORD_PTR  dwUnused3 
)

Definition at line 1271 of file mrulist.cpp.

1272{
1273 UNREFERENCED_PARAMETER(dwUnused1);
1274 UNREFERENCED_PARAMETER(dwUnused3);
1275
1276 TRACE("%p %p %p\n", dwUnused1, ppv, dwUnused3);
1277
1278 if (!ppv)
1279 return E_POINTER;
1280
1281 *ppv = NULL;
1282
1283 CMruPidlList *pMruList = new CMruPidlList();
1284 if (pMruList == NULL)
1285 return E_OUTOFMEMORY;
1286
1287 *ppv = static_cast<IMruPidlList*>(pMruList);
1288 TRACE("%p\n", *ppv);
1289 return S_OK;
1290}
#define NULL
Definition: types.h:112

Referenced by CMruClassFactory::CreateInstance(), and DllGetClassObject().

◆ IEILIsEqual()

BOOL IEILIsEqual ( LPCITEMIDLIST  pidl1,
LPCITEMIDLIST  pidl2,
BOOL  bUnknown 
)

Definition at line 41 of file mrulist.cpp.

42{
43 UINT cb1 = ILGetSize(pidl1), cb2 = ILGetSize(pidl2);
44 if (cb1 == cb2 && memcmp(pidl1, pidl2, cb1) == 0)
45 return TRUE;
46
47 FIXME("%p, %p\n", pidl1, pidl2);
48 return FALSE;
49}
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
#define FIXME(fmt,...)
Definition: debug.h:111
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
unsigned int UINT
Definition: ndis.h:50
#define ILGetSize
Definition: shellclasses.h:638

Referenced by CMruBase::_IsEqual().

◆ STDMETHODIMP_()

STDMETHODIMP_ ( ULONG  )

Definition at line 196 of file mrulist.cpp.

197{
198 if (::InterlockedDecrement(&m_cRefs) == 0)
199 {
200 _SaveSlots();
201 delete this;
202 return 0;
203 }
204 return m_cRefs;
205}
#define InterlockedDecrement
Definition: armddk.h:52

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( shdocvw  )