* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#define WIN32_NO_STATUS
-#define _INC_WINDOWS
-
-//#include <assert.h>
+#include <assert.h>
#include <stdarg.h>
-//#include <string.h>
+#include <string.h>
#define COBJMACROS
-#define NONAMELESSUNION
-#define NONAMELESSSTRUCT
-
-//#include "winerror.h"
-#include <windef.h>
-#include <winbase.h>
-//#include "winuser.h"
-#include <wine/debug.h>
-#include <ole2.h>
-#include <wine/unicode.h>
+
+#include "winerror.h"
+#include "windef.h"
+#include "winbase.h"
+#include "winuser.h"
+#include "wine/debug.h"
+#include "ole2.h"
+#include "wine/unicode.h"
#include "moniker.h"
WINE_DEFAULT_DEBUG_CHANNEL(ole);
{
ClassMoniker *This = impl_from_IMoniker(iface);
- TRACE("(%p,%p,%p)\n",This,riid,ppvObject);
+ TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppvObject);
/* Perform a sanity check on the parameters.*/
if (!ppvObject)
return InterlockedIncrement(&This->ref);
}
-/******************************************************************************
- * ClassMoniker_Destroy (local function)
- *******************************************************************************/
-static HRESULT ClassMoniker_Destroy(ClassMoniker* This)
-{
- TRACE("(%p)\n",This);
-
- if (This->pMarshal) IUnknown_Release(This->pMarshal);
-
- HeapFree(GetProcessHeap(),0,This);
-
- return S_OK;
-}
-
/******************************************************************************
* ClassMoniker_Release
******************************************************************************/
ref = InterlockedDecrement(&This->ref);
- /* destroy the object if there's no more reference on it */
- if (ref == 0) ClassMoniker_Destroy(This);
+ /* destroy the object if there are no more references to it */
+ if (ref == 0)
+ {
+ if (This->pMarshal) IUnknown_Release(This->pMarshal);
+ HeapFree(GetProcessHeap(),0,This);
+ }
return ref;
}
IClassActivator *pActivator;
HRESULT hr;
- TRACE("(%p,%p,%p,%p)\n", pbc, pmkToLeft, riid, ppvResult);
+ TRACE("(%p, %p, %s, %p)\n", pbc, pmkToLeft, debugstr_guid(riid), ppvResult);
bindopts.cbStruct = sizeof(bindopts);
IBindCtx_GetBindOptions(pbc, (BIND_OPTS *)&bindopts);
REFIID riid,
VOID** ppvResult)
{
- TRACE("(%p,%p,%p,%p)\n",pbc, pmkToLeft, riid, ppvResult);
- return ClassMoniker_BindToObject(iface, pbc, pmkToLeft, riid, ppvResult);
+ TRACE("(%p, %p, %s, %p)\n", pbc, pmkToLeft, debugstr_guid(riid), ppvResult);
+ return IMoniker_BindToObject(iface, pbc, pmkToLeft, riid, ppvResult);
}
/******************************************************************************
if (!ppmkReduced)
return E_POINTER;
- ClassMoniker_AddRef(iface);
+ IMoniker_AddRef(iface);
*ppmkReduced = iface;
*ppszDisplayName = CoTaskMemAlloc(sizeof(wszClsidPrefix) + (CHARS_IN_GUID-2) * sizeof(WCHAR));
- StringFromGUID2(&This->clsid, *ppszDisplayName+sizeof(wszClsidPrefix)/sizeof(WCHAR)-2, CHARS_IN_GUID);
+ StringFromGUID2(&This->clsid, *ppszDisplayName+ARRAY_SIZE(wszClsidPrefix)-2, CHARS_IN_GUID);
/* note: this overwrites the opening curly bracket of the CLSID string generated above */
memcpy(*ppszDisplayName, wszClsidPrefix, sizeof(wszClsidPrefix)-sizeof(WCHAR));
/* note: this overwrites the closing curly bracket of the CLSID string generated above */
- (*ppszDisplayName)[sizeof(wszClsidPrefix)/sizeof(WCHAR)-2+CHARS_IN_GUID-2] = ':';
- (*ppszDisplayName)[sizeof(wszClsidPrefix)/sizeof(WCHAR)-2+CHARS_IN_GUID-1] = '\0';
+ (*ppszDisplayName)[ARRAY_SIZE(wszClsidPrefix)-2+CHARS_IN_GUID-2] = ':';
+ (*ppszDisplayName)[ARRAY_SIZE(wszClsidPrefix)-2+CHARS_IN_GUID-1] = '\0';
TRACE("string is %s\n", debugstr_w(*ppszDisplayName));
return S_OK;
ClassMoniker *This = impl_from_IROTData(iface);
- TRACE("(%p,%p,%p)\n",iface,riid,ppvObject);
+ TRACE("(%p, %s, %p)\n", iface, debugstr_guid(riid), ppvObject);
- return ClassMoniker_QueryInterface(&This->IMoniker_iface, riid, ppvObject);
+ return IMoniker_QueryInterface(&This->IMoniker_iface, riid, ppvObject);
}
/***********************************************************************
TRACE("(%p)\n",iface);
- return ClassMoniker_AddRef(&This->IMoniker_iface);
+ return IMoniker_AddRef(&This->IMoniker_iface);
}
/***********************************************************************
TRACE("(%p)\n",iface);
- return ClassMoniker_Release(&This->IMoniker_iface);
+ return IMoniker_Release(&This->IMoniker_iface);
}
/******************************************************************************
return hr;
}
-static HRESULT WINAPI ClassMonikerCF_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv)
-{
- *ppv = NULL;
- if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IClassFactory))
- {
- *ppv = iface;
- IClassFactory_AddRef(iface);
- return S_OK;
- }
- return E_NOINTERFACE;
-}
-
-static ULONG WINAPI ClassMonikerCF_AddRef(LPCLASSFACTORY iface)
-{
- return 2; /* non-heap based object */
-}
-
-static ULONG WINAPI ClassMonikerCF_Release(LPCLASSFACTORY iface)
-{
- return 1; /* non-heap based object */
-}
-
-static HRESULT WINAPI ClassMonikerCF_CreateInstance(LPCLASSFACTORY iface,
- LPUNKNOWN pUnk, REFIID riid, LPVOID *ppv)
+HRESULT WINAPI ClassMoniker_CreateInstance(IClassFactory *iface,
+ IUnknown *pUnk, REFIID riid, void **ppv)
{
HRESULT hr;
IMoniker *pmk;
return hr;
}
-
-static HRESULT WINAPI ClassMonikerCF_LockServer(LPCLASSFACTORY iface, BOOL fLock)
-{
- FIXME("(%d), stub!\n",fLock);
- return S_OK;
-}
-
-static const IClassFactoryVtbl ClassMonikerCFVtbl =
-{
- ClassMonikerCF_QueryInterface,
- ClassMonikerCF_AddRef,
- ClassMonikerCF_Release,
- ClassMonikerCF_CreateInstance,
- ClassMonikerCF_LockServer
-};
-static const IClassFactoryVtbl *ClassMonikerCF = &ClassMonikerCFVtbl;
-
-HRESULT ClassMonikerCF_Create(REFIID riid, LPVOID *ppv)
-{
- return IClassFactory_QueryInterface((IClassFactory *)&ClassMonikerCF, riid, ppv);
-}