Commit 3fb3da29 authored by Noomen Hamza's avatar Noomen Hamza Committed by Alexandre Julliard

Added a stub implementation for FileMoniker, ItemMoniker and BindCtx

classes.
parent 2c3d07fa
...@@ -30,7 +30,30 @@ typedef struct IMultiQI IMultiQI,*LPMULTIQI; ...@@ -30,7 +30,30 @@ typedef struct IMultiQI IMultiQI,*LPMULTIQI;
/***************************************************************************** /*****************************************************************************
* IEnumString interface * IEnumString interface
*/ */
/* FIXME: not implemented */ #define ICOM_INTERFACE IEnumString
ICOM_BEGIN(IEnumString,IUnknown)
ICOM_METHOD3 (HRESULT, Next, ULONG, celt, LPOLESTR32, rgelt, ULONG*, pceltFetched);
ICOM_METHOD1 (HRESULT, Skip, ULONG, celt);
ICOM_METHOD (HRESULT, Reset);
ICOM_METHOD1 (HRESULT, Clone, IEnumString**, ppenum);
ICOM_END(IEnumString)
#undef ICOM_INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IEnumString_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
#define IEnumString_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
#define IEnumString_Release(p) ICOM_ICALL (IUnknown,Release,p)
/* IBindCtx methods*/
#define IEnumString_Next(p,a,b,c) ICOM_CALL3(Next,p,a,b,c);
#define IEnumString_Skip(p,a) ICOM_CALL1(Skip,p,a);
#define IEnumString_Reset(p,a) ICOM_CALL(Reset,p);
#define IEnumString_Clone(p,a) ICOM_CALL1(Clone,p,a);
#endif
#define CreateEnumString WINELIB_NAME(CreateEnumString)
/***************************************************************************** /*****************************************************************************
......
...@@ -5,10 +5,11 @@ ...@@ -5,10 +5,11 @@
*/ */
#include "wine/obj_misc.h"
#ifndef __WINE_WINE_OBJ_MONIKER_H #ifndef __WINE_WINE_OBJ_MONIKER_H
#define __WINE_WINE_OBJ_MONIKER_H #define __WINE_WINE_OBJ_MONIKER_H
/***************************************************************************** /*****************************************************************************
* Predeclare the interfaces * Predeclare the interfaces
*/ */
...@@ -34,35 +35,137 @@ typedef struct IRunnableObject IRunnableObject,*LPRUNNABLEOBJECT; ...@@ -34,35 +35,137 @@ typedef struct IRunnableObject IRunnableObject,*LPRUNNABLEOBJECT;
DEFINE_OLEGUID(IID_IRunningObjectTable, 0x00000010L, 0, 0); DEFINE_OLEGUID(IID_IRunningObjectTable, 0x00000010L, 0, 0);
typedef struct IRunningObjectTable IRunningObjectTable,*LPRUNNINGOBJECTTABLE; typedef struct IRunningObjectTable IRunningObjectTable,*LPRUNNINGOBJECTTABLE;
typedef struct COSERVERINFO COSERVERINFO; // must be defined !
/*********************************************************************************
* BIND_OPTS and BIND_OPTS2 structures definition
* Thes structures contain parameters used during a moniker-binding operation.
*********************************************************************************/
typedef struct tagBIND_OPTS{
DWORD cbStruct;
DWORD grfFlags;
DWORD grfMode;
DWORD dwTickCountDeadline;
} BIND_OPTS, * LPBIND_OPTS;
typedef struct tagBIND_OPTS2{
DWORD cbStruct;
DWORD grfFlags;
DWORD grfMode;
DWORD dwTickCountDeadline;
DWORD dwTrackFlags;
DWORD dwClassContext;
LCID locale;
COSERVERINFO* pServerInfo;
} BIND_OPTS2, * LPBIND_OPTS2;
/***************************************************************************** /*****************************************************************************
* IBindCtx interface * IBindCtx interface
*/ */
/* FIXME: not implemented */ #define ICOM_INTERFACE IBindCtx
ICOM_BEGIN(IBindCtx,IUnknown)
ICOM_METHOD1 (HRESULT, RegisterObjectBound,IUnknown*,punk);
ICOM_METHOD1 (HRESULT, RevokeObjectBound,IUnknown*,punk);
ICOM_METHOD (HRESULT, ReleaseObjects);
ICOM_METHOD1 (HRESULT, SetBindOptions,LPBIND_OPTS2,pbindopts);
ICOM_METHOD1 (HRESULT, GetBindOptions,LPBIND_OPTS2,pbindopts);
ICOM_METHOD1 (HRESULT, GetRunningObjectTable,IRunningObjectTable**,pprot);
ICOM_METHOD2 (HRESULT, RegisterObjectParam,LPOLESTR32,pszkey,IUnknown*,punk);
ICOM_METHOD2 (HRESULT, GetObjectParam,LPOLESTR32,pszkey,IUnknown*,punk);
ICOM_METHOD1 (HRESULT, EnumObjectParam,IEnumString**,ppenum);
ICOM_METHOD1 (HRESULT, RevokeObjectParam,LPOLESTR32,pszkey);
ICOM_END(IBindCtx)
#undef ICOM_INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IBindCtx_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
#define IBindCtxr_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
#define IBindCtx_Release(p) ICOM_ICALL (IUnknown,Release,p)
/* IBindCtx methods*/
#define IBindCtx_RegisterObjectBound(p,a) ICOM_CALL1 (RegisterObjectBound,p,a);
#define IBindCtx_RevokeObjectBound(p,a) ICOM_CALL1 (RevokeObjectBound,p,a);
#define IBindCtx_ReleaseObjects(p) ICOM_CALL (ReleaseObjects,p);
#define IBindCtx_SetBindOptions(p,a) ICOM_CALL1 (SetBindOptions,p,a);
#define IBindCtx_GetBindOptions(p,a) ICOM_CALL1 (GetBindOptions,p,a);
#define IBindCtx_GetRunningObjectTable(p,a) ICOM_CALL1 (GetRunningObjectTable,p,a);
#define IBindCtx_RegisterObjectParam(p,a,b) ICOM_CALL2 (RegisterObjectParam,p,a,b);
#define IBindCtx_GetObjectParam(p,a,b) ICOM_CALL2 (GetObjectParam,p,a,b);
#define IBindCtx_EnumObjectParam(p,a) ICOM_CALL1 (EnumObjectParam,p,a);
#define IBindCtx_RevokeObjectParam(p,a) ICOM_CALL1 (RevokeObjectParam,p,a);
#endif
#define CreateBindCtx WINELIB_NAME(CreateBindCtx)
/***************************************************************************** /*****************************************************************************
* IClassActivator interface * IClassActivator interface
*/ */
/* FIXME: not implemented */ /* FIXME: not implemented */
/***************************************************************************** /*****************************************************************************
* IEnumMoniker interface * IEnumMoniker interface
*/ */
/* FIXME: not implemented */ /* FIXME: not implemented */
/***************************************************************************** /*****************************************************************************
* IMoniker interface * IMoniker interface
*/ */
/* FIXME: not implemented */ #define ICOM_INTERFACE IMoniker
ICOM_BEGIN(IMoniker,IPersistStream)
ICOM_METHOD4 (HRESULT,BindToObject,IBindCtx*,pbc,IMoniker*,pmkToLeft,REFIID,riid,VOID**,ppvResult);
ICOM_METHOD4 (HRESULT,BindToStorage,IBindCtx*,pbc,IMoniker*,pmkToLeft,REFIID,riid,VOID**,ppvResult);
ICOM_METHOD4 (HRESULT,Reduce,IBindCtx*,pbc,DWORD,dwReduceHowFar,IMoniker**,ppmkToLeft,IMoniker**,ppmkReduced);
ICOM_METHOD3 (HRESULT,ComposeWith,IMoniker*,pmkRight,BOOL32,fOnlyIfNotGeneric,IMoniker**,ppmkComposite);
ICOM_METHOD2 (HRESULT,Enum,BOOL32,fForward,IEnumMoniker**,ppenumMoniker);
ICOM_METHOD1 (HRESULT,IsEqual,IMoniker*, pmkOtherMoniker);
ICOM_METHOD1 (HRESULT,Hash,DWORD*,pdwHash);
ICOM_METHOD3 (HRESULT,IsRunning,IBindCtx*,pbc,IMoniker*,pmkToLeft,IMoniker*,pmkNewlyRunning);
ICOM_METHOD3 (HRESULT,GetTimeOfLastChange,IBindCtx*,pbc,IMoniker*,pmkToLeft,FILETIME*,pFileTime);
ICOM_METHOD1 (HRESULT,Inverse,IMoniker**,ppmk);
ICOM_METHOD2 (HRESULT,CommonPrefixWith,IMoniker*,pmkOther,IMoniker**,ppmkPrefix);
ICOM_METHOD2 (HRESULT,RelativePathTo,IMoniker*,pmOther,IMoniker**,ppmkRelPath);
ICOM_METHOD3 (HRESULT,GetDisplayName,IBindCtx*,pbc,IMoniker*,pmkToLeft,LPOLESTR32,*ppszDisplayName);
ICOM_METHOD5 (HRESULT,ParseDisplayName,IBindCtx*,pbc,IMoniker*,pmkToLeft,LPOLESTR32,pszDisplayName,ULONG*,pchEaten,IMoniker**,ppmkOut);
ICOM_METHOD1 (HRESULT,IsSystemMoniker,DWORD*,pwdMksys);
ICOM_END(IMoniker)
#undef ICOM_INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IMoniker_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
#define IMoniker_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
#define IMoniker_Release(p) ICOM_ICALL (IUnknown,Release,p)
/*** IPersist methods ***/
#define IMoniker_GetClassID(p,a) ICOM_ICALL1(IPersist,GetClassID,p,a)
/*** IPersistStream ***/
#define IMoniker_Stream_IsDirty(p) ICOM_ICALL(IPersistStream,IsDirty,p)
#define IMoniker_Stream_Load(p,a) ICOM_ICALL1(IPersistStream,Load,p,a)
#define IMoniker_Stream_Save(p,a,b) ICOM_ICALL2(IPersistStream,Save,p,a,b)
#define IMoniker_Stream_GetSizeMax(p,a) ICOM_ICALL1(IPersistStream,GetSizeMax,p,a)
/* IMonker methods*/
#define IMoniker_BindToObject(p,a,b,c,d) ICOM_CALL4(BindToObject,p,a,b,c,d)
#define IMoniker_BindToStorage(p,a,b,c,d) ICOM_CALL4(BindToStorage,p,a,b,c,d)
#define IMoniker_Reduce(p,a,b,c,d) ICOM_CALL4(Reduce,p,a,b,c,d)
#define IMoniker_ComposeWith(p,a,b,c) ICOM_CALL3(ComposeWith,p,a,b,c)
#define IMoniker_Enum(p,a,b) ICOM_CALL2(Enum,p,a,b)
#define IMoniker_IsEqual(p,a) ICOM_CALL1(IsEqual,p,a)
#define IMoniker_Hash(p,a) ICOM_CALL1(Hash,p,a)
#define IMoniker_IsRunning(p,a,b,c) ICOM_CALL3(IsRunning,p,a,b,c)
#define IMoniker_GetTimeOfLastChange(p,a,b,c) ICOM_CALL3(GetTimeOfLastChange,p,a,b,c)
#define IMoniker_Inverse(p,a) ICOM_CALL1(Inverse,p,a)
#define IMoniker_CommonPrefixWith(p,a,b) ICOM_CALL2(CommonPrefixWith,p,a,b)
#define IMoniker_RelativePathTo(p,a,b) ICOM_CALL2(RelativePathTo,p,a,b)
#define IMoniker_GetDisplayName(p,a,b,c) ICOM_CALL3(GetDisplayName,p,a,b,c)
#define IMoniker_ParseDisplayName(p,a,b,c,d,e) ICOM_CALL5(ParseDisplayName,p,a,b,c,d,e)
#define IMoniker_IsSystemMoniker(p,a) ICOM_CALL1(IsSystemMonker,p,a)
#endif
HRESULT WINAPI CreateFileMoniker16(LPCOLESTR16 lpszPathName,LPMONIKER* ppmk);
HRESULT WINAPI CreateFileMoniker32(LPCOLESTR32 lpszPathName,LPMONIKER* ppmk);
#define CreateFileMoniker WINELIB_NAME(CreateFileMoniker) #define CreateFileMoniker WINELIB_NAME(CreateFileMoniker)
HRESULT WINAPI CreateItemMoniker32(LPCOLESTR32 lpszDelim,LPCOLESTR32 lpszItem,LPMONIKER* ppmk);
#define CreateItemMoniker WINELIB_NAME(CreateItemMoniker) #define CreateItemMoniker WINELIB_NAME(CreateItemMoniker)
......
...@@ -177,10 +177,10 @@ ICOM_END(IPersistFile) ...@@ -177,10 +177,10 @@ ICOM_END(IPersistFile)
#define IPersistFile_GetClassID(p,a) ICOM_ICALL1(IPersist,GetClassID,p,a) #define IPersistFile_GetClassID(p,a) ICOM_ICALL1(IPersist,GetClassID,p,a)
/*** IPersistFile methods ***/ /*** IPersistFile methods ***/
#define IPersistFile_IsDirty(p) ICOM_CALL(IsDirty,p) #define IPersistFile_IsDirty(p) ICOM_CALL(IsDirty,p)
#define IPersistFile_Load(p,a,b) ICOM_CALL(Load,p,a,b) #define IPersistFile_Load(p,a,b) ICOM_CALL2(Load,p,a,b)
#define IPersistFile_Save(p,a,b) ICOM_CALL(Save,p,a,b) #define IPersistFile_Save(p,a,b) ICOM_CALL2(Save,p,a,b)
#define IPersistFile_SaveCompleted(p,a) ICOM_CALL(SaveCompleted,p,a) #define IPersistFile_SaveCompleted(p,a) ICOM_CALL1(SaveCompleted,p,a)
#define IPersistFile_GetCurFile(p,a) ICOM_CALL(GetCurFile,p,a) #define IPersistFile_GetCurFile(p,a) ICOM_CALL1(GetCurFile,p,a)
#endif #endif
...@@ -193,7 +193,28 @@ ICOM_END(IPersistFile) ...@@ -193,7 +193,28 @@ ICOM_END(IPersistFile)
/***************************************************************************** /*****************************************************************************
* IPersistStream interface * IPersistStream interface
*/ */
/* FIXME: not implemented */ #define ICOM_INTERFACE IPersistStream
ICOM_BEGIN(IPersistStream,IPersist);
ICOM_METHOD(HRESULT, IsDirty);
ICOM_METHOD1(HRESULT, Load, IStream32*, pStm);
ICOM_METHOD2(HRESULT, Save, IStream32*, pStm, BOOL32, fClearDirty);
ICOM_METHOD1(HRESULT, GetSizeMax, ULARGE_INTEGER*, pcbSize);
ICOM_END(IPersistStream)
#undef ICOM_INTERFACE
#if !defined(__cplusplus) || defined(CINTERFACE)
/*** IUnknown methods ***/
#define IPersistStream_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
#define IPersistStream_AddRef(p) ICOM_ICALL(IUnknown,AddRef,p)
#define IPersistStream_Release(p) ICOM_ICALL(IUnknown,Release,p)
/*** IPersist methods ***/
#define IPersistStream_GetClassID(p,a) ICOM_ICALL1(IPersist,GetClassID,p,a)
/*** IPersistStream ***/
#define IPersist_Stream_IsDirty(p) ICOM_CALL(IsDirty,p)
#define IPersist_Stream_Load(p,a) ICOM_CALL1(Load,p,a)
#define IPersist_Stream_Save(p,a,b) ICOM_CALL2(Save,p,a,b)
#define IPersist_Stream_GetSizeMax(p,a) ICOM_CALL(GetSizeMax,p)
#endif
/***************************************************************************** /*****************************************************************************
......
...@@ -6,9 +6,12 @@ VPATH = @srcdir@ ...@@ -6,9 +6,12 @@ VPATH = @srcdir@
MODULE = ole MODULE = ole
C_SRCS = \ C_SRCS = \
bindctx.c \
compobj.c \ compobj.c \
filemoniker.c \
guid.c \ guid.c \
ifs.c \ ifs.c \
itemmoniker.c \
moniker.c \ moniker.c \
ole2.c \ ole2.c \
ole2disp.c \ ole2disp.c \
......
/***************************************************************************************
* BindCtx implementation
*
* Copyright 1999 Noomen Hamza
***************************************************************************************/
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "winerror.h"
#include "wine/obj_base.h"
#include "wine/obj_storage.h"
#include "wine/obj_moniker.h"
#include "debug.h"
#include "heap.h"
typedef struct BindCtxImpl{
ICOM_VTABLE(IBindCtx)* lpvtbl;
ULONG ref;
} BindCtxImpl;
HRESULT WINAPI BindCtxImpl_QueryInterface(BindCtxImpl* This,REFIID riid,void** ppvObject);
ULONG WINAPI BindCtxImpl_AddRef(BindCtxImpl* This);
ULONG WINAPI BindCtxImpl_Release(BindCtxImpl* This);
HRESULT WINAPI BindCtxImpl_Construct(BindCtxImpl* This);
HRESULT WINAPI BindCtxImpl_destroy(BindCtxImpl* This);
HRESULT WINAPI BindCtxImpl_RegisterObjectBound(BindCtxImpl* This,IUnknown* punk);
HRESULT WINAPI BindCtxImpl_RevokeObjectBound(BindCtxImpl* This, IUnknown* punk);
HRESULT WINAPI BindCtxImpl_ReleaseObjects(BindCtxImpl* This);
HRESULT WINAPI BindCtxImpl_SetBindOptions(BindCtxImpl* This,LPBIND_OPTS2 pbindopts);
HRESULT WINAPI BindCtxImpl_GetBindOptions(BindCtxImpl* This,LPBIND_OPTS2 pbindopts);
HRESULT WINAPI BindCtxImpl_GetRunningObjectTable(BindCtxImpl* This,IRunningObjectTable** pprot);
HRESULT WINAPI BindCtxImpl_RegisterObjectParam(BindCtxImpl* This,LPOLESTR32 pszkey, IUnknown* punk);
HRESULT WINAPI BindCtxImpl_GetObjectParam(BindCtxImpl* This,LPOLESTR32 pszkey, IUnknown* punk);
HRESULT WINAPI BindCtxImpl_EnumObjectParam(BindCtxImpl* This,IEnumString** ppenum);
HRESULT WINAPI BindCtxImpl_RevokeObjectParam(BindCtxImpl* This,LPOLESTR32 pszkey);
HRESULT WINAPI CreateBindCtx16(DWORD reserved, LPBC * ppbc);
HRESULT WINAPI CreateBindCtx32(DWORD reserved, LPBC * ppbc);
#define VTABLE_FUNC(a) (void*)(a)
// Virtual function table for the BindCtx class.
static ICOM_VTABLE(IBindCtx) VT_BindCtxImpl =
{
{
VTABLE_FUNC(BindCtxImpl_QueryInterface),
VTABLE_FUNC(BindCtxImpl_AddRef),
VTABLE_FUNC(BindCtxImpl_Release)
},
VTABLE_FUNC(BindCtxImpl_RegisterObjectBound),
VTABLE_FUNC(BindCtxImpl_RevokeObjectBound),
VTABLE_FUNC(BindCtxImpl_ReleaseObjects),
VTABLE_FUNC(BindCtxImpl_SetBindOptions),
VTABLE_FUNC(BindCtxImpl_GetBindOptions),
VTABLE_FUNC(BindCtxImpl_GetRunningObjectTable),
VTABLE_FUNC(BindCtxImpl_RegisterObjectParam),
VTABLE_FUNC(BindCtxImpl_GetObjectParam),
VTABLE_FUNC(BindCtxImpl_EnumObjectParam),
VTABLE_FUNC(BindCtxImpl_RevokeObjectParam)
};
/*******************************************************************************
* BindCtx_QueryInterface
*******************************************************************************/
HRESULT WINAPI BindCtxImpl_QueryInterface(BindCtxImpl* This,REFIID riid,void** ppvObject){
TRACE(ole,"(%p,%p,%p)\n",This,riid,ppvObject);
// Perform a sanity check on the parameters.
if ( (This==0) || (ppvObject==0) ) return E_INVALIDARG;
// Initialize the return parameter.
*ppvObject = 0;
// Compare the riid with the interface IDs implemented by this object.
if (memcmp(&IID_IUnknown, riid, sizeof(IID_IUnknown)) == 0)
*ppvObject = (IBindCtx*)This;
else
if (memcmp(&IID_IBindCtx, riid, sizeof(IID_IBindCtx)) == 0)
*ppvObject = (IBindCtx*)This;
// Check that we obtained an interface.
if ((*ppvObject)==0) return E_NOINTERFACE;
// Query Interface always increases the reference count by one when it is successful
BindCtxImpl_AddRef(This);
return S_OK;
}
/******************************************************************************
* BindCtx_ _AddRef
******************************************************************************/
ULONG WINAPI BindCtxImpl_AddRef(BindCtxImpl* This){
TRACE(ole,"(%p)\n",This);
return ++(This->ref);
}
/******************************************************************************
* BindCtx_Release
******************************************************************************/
ULONG WINAPI BindCtxImpl_Release(BindCtxImpl* This){
TRACE(ole,"(%p)\n",This);
This->ref--;
if (This->ref==0){
BindCtxImpl_destroy(This);
return 0;
}
return This->ref;;
}
/******************************************************************************
* BindCtx_Constructor
*******************************************************************************/
HRESULT WINAPI BindCtxImpl_Construct(BindCtxImpl* This){
FIXME(ole,"(%p),stub!\n",This);
memset(This, 0, sizeof(BindCtxImpl));
//Initialize the virtual fgunction table.
This->lpvtbl = &VT_BindCtxImpl;
return E_NOTIMPL;
}
/******************************************************************************
* BindCtx_destructor
*******************************************************************************/
HRESULT WINAPI BindCtxImpl_destroy(BindCtxImpl* This){
FIXME(ole,"(%p),stub!\n",This);
SEGPTR_FREE(This);
return S_OK;
}
/******************************************************************************
* BindCtx_RegisterObjectBound
******************************************************************************/
HRESULT WINAPI BindCtxImpl_RegisterObjectBound(BindCtxImpl* This,IUnknown* punk){
FIXME(ole,"(%p,%p),stub!\n",This,punk);
return E_NOTIMPL;
}
/******************************************************************************
* BindCtx_RevokeObjectBound
******************************************************************************/
HRESULT WINAPI BindCtxImpl_RevokeObjectBound(BindCtxImpl* This, IUnknown* punk){
FIXME(ole,"(%p,%p),stub!\n",This,punk);
return E_NOTIMPL;
}
/******************************************************************************
* BindCtx_ReleaseObjects
******************************************************************************/
HRESULT WINAPI BindCtxImpl_ReleaseObjects(BindCtxImpl* This){
FIXME(ole,"(%p),stub!\n",This);
return E_NOTIMPL;
}
/******************************************************************************
* BindCtx_SetBindOptions
******************************************************************************/
HRESULT WINAPI BindCtxImpl_SetBindOptions(BindCtxImpl* This,LPBIND_OPTS2 pbindopts){
FIXME(ole,"(%p,%p),stub!\n",This,pbindopts);
return E_NOTIMPL;
}
/******************************************************************************
* BindCtx_GetBindOptions
******************************************************************************/
HRESULT WINAPI BindCtxImpl_GetBindOptions(BindCtxImpl* This,LPBIND_OPTS2 pbindopts){
FIXME(ole,"(%p,%p),stub!\n",This,pbindopts);
return E_NOTIMPL;
}
/******************************************************************************
* BindCtx_GetRunningObjectTable
******************************************************************************/
HRESULT WINAPI BindCtxImpl_GetRunningObjectTable(BindCtxImpl* This,IRunningObjectTable** pprot){
FIXME(ole,"(%p,%p),stub!\n",This,pprot);
return E_NOTIMPL;
}
/******************************************************************************
* BindCtx_RegisterObjectParam
******************************************************************************/
HRESULT WINAPI BindCtxImpl_RegisterObjectParam(BindCtxImpl* This,LPOLESTR32 pszkey, IUnknown* punk){
FIXME(ole,"(%p,%p,%p),stub!\n",This,pszkey,punk);
return E_NOTIMPL;
}
/******************************************************************************
* BindCtx_GetObjectParam
******************************************************************************/
HRESULT WINAPI BindCtxImpl_GetObjectParam(BindCtxImpl* This,LPOLESTR32 pszkey, IUnknown* punk){
FIXME(ole,"(%p,%p,%p),stub!\n",This,pszkey,punk);
return E_NOTIMPL;
}
/******************************************************************************
* BindCtx_EnumObjectParam
******************************************************************************/
HRESULT WINAPI BindCtxImpl_EnumObjectParam(BindCtxImpl* This,IEnumString** ppenum){
FIXME(ole,"(%p,%p),stub!\n",This,ppenum);
return E_NOTIMPL;
}
/******************************************************************************
* BindCtx_RevokeObjectParam
******************************************************************************/
HRESULT WINAPI BindCtxImpl_RevokeObjectParam(BindCtxImpl* This,LPOLESTR32 pszkey){
FIXME(ole,"(%p,%p),stub!\n",This,pszkey);
return E_NOTIMPL;
}
/******************************************************************************
* CreateBindCtx16
******************************************************************************/
HRESULT WINAPI CreateBindCtx16(DWORD reserved, LPBC * ppbc){
FIXME(ole,"(%ld,%p),stub!\n",reserved,ppbc);
return E_NOTIMPL;
}
/******************************************************************************
* CreateBindCtx32
******************************************************************************/
HRESULT WINAPI CreateBindCtx32(DWORD reserved, LPBC * ppbc){
BindCtxImpl* newBindCtx = 0;
HRESULT hr = S_OK;
TRACE(ole,"(%ld,%p)\n",reserved,ppbc);
newBindCtx = HeapAlloc(GetProcessHeap(), 0, sizeof(BindCtxImpl));
if (newBindCtx == 0)
return STG_E_INSUFFICIENTMEMORY;
hr = BindCtxImpl_Construct(newBindCtx);
if (FAILED(hr))
return hr;
hr = BindCtxImpl_QueryInterface(newBindCtx,&IID_IBindCtx,(void**)ppbc);
return hr;
}
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
* Monikers * Monikers
* *
* Copyright 1998 Marcus Meissner * Copyright 1998 Marcus Meissner
* Copyright 1999 Noomen Hamza
*/ */
#include <ctype.h> #include <ctype.h>
...@@ -15,43 +16,18 @@ ...@@ -15,43 +16,18 @@
#include "debug.h" #include "debug.h"
/****************************************************************************** /******************************************************************************
* CreateFileMoniker16 [OLE2.28] * GetRunningObjectTable16 [OLE2.30]
*/ */
HRESULT WINAPI HRESULT WINAPI GetRunningObjectTable16(DWORD reserved, LPVOID *pprot) {
CreateFileMoniker16( FIXME(ole,"(%ld,%p),stub!\n",reserved,pprot);
LPCOLESTR16 lpszPathName, /* [in] pathname */
LPMONIKER * ppmk /* [out] new moniker object */
) {
FIXME(ole,"(%s,%p),stub!\n",lpszPathName,ppmk);
*ppmk = NULL;
return E_FAIL; return E_FAIL;
} }
/******************************************************************************
* CreateFileMoniker32 [OLE32.55]
*/
HRESULT WINAPI
CreateFileMoniker32(
LPCOLESTR32 lpszPathName, /* [in] pathname */
LPMONIKER * ppmk /* [out] new moniker object */
) {
FIXME(ole,"(%s,%p),stub!\n",debugstr_w(lpszPathName),ppmk);
*ppmk = NULL;
return E_FAIL;
}
/****************************************************************************** /***********************************************************************
* CreateItemMoniker32 [OLE32.58] * GetRunningObjectTable32 (OLE2.73)
*/ */
HRESULT WINAPI HRESULT WINAPI GetRunningObjectTable32(DWORD reserved, LPVOID *pprot) {
CreateItemMoniker32( FIXME(ole,"(%ld,%p),stub!\n",reserved,pprot);
LPCOLESTR32 lpszDelim, /* [in] */
LPCOLESTR32 lpszItem, /* [in] */
LPMONIKER * ppmk /* [out] new moniker object */
)
{
FIXME (ole,"(%s %s %p),stub!\n",
debugstr_w(lpszDelim), debugstr_w(lpszItem), ppmk);
return E_FAIL; return E_FAIL;
} }
...@@ -90,23 +90,6 @@ HRESULT WINAPI OleInitializeWOW(DWORD x) { ...@@ -90,23 +90,6 @@ HRESULT WINAPI OleInitializeWOW(DWORD x) {
return 0; return 0;
} }
/******************************************************************************
* GetRunningObjectTable16 [OLE2.30]
*/
HRESULT WINAPI GetRunningObjectTable16(DWORD reserved, LPVOID *pprot) {
FIXME(ole,"(%ld,%p),stub!\n",reserved,pprot);
return E_FAIL;
}
/***********************************************************************
* GetRunningObjectTable32 (OLE2.73)
*/
HRESULT WINAPI GetRunningObjectTable32(DWORD reserved, LPVOID *pprot) {
FIXME(ole,"(%ld,%p),stub!\n",reserved,pprot);
return E_FAIL;
}
/*********************************************************************** /***********************************************************************
* RegisterDragDrop16 (OLE2.35) * RegisterDragDrop16 (OLE2.35)
*/ */
...@@ -162,17 +145,6 @@ HRESULT WINAPI OleRegGetUserType32( ...@@ -162,17 +145,6 @@ HRESULT WINAPI OleRegGetUserType32(
} }
/*********************************************************************** /***********************************************************************
* CreateBindCtx32 [OLE32.52]
*/
HRESULT WINAPI CreateBindCtx32 (DWORD reserved, LPVOID *ppbc)
{
FIXME(ole,"(0x%08lx %p): stub!\n", reserved, ppbc);
*ppbc = 0;
/* return S_OK; */
return E_OUTOFMEMORY;
}
/***********************************************************************
* DoDragDrop32 [OLE32.65] * DoDragDrop32 [OLE32.65]
*/ */
HRESULT WINAPI DoDragDrop32 ( HRESULT WINAPI DoDragDrop32 (
...@@ -184,4 +156,3 @@ HRESULT WINAPI DoDragDrop32 ( ...@@ -184,4 +156,3 @@ HRESULT WINAPI DoDragDrop32 (
FIXME(ole,"(DataObject %p, DropSource %p): stub!\n", pDataObject, pDropSource); FIXME(ole,"(DataObject %p, DropSource %p): stub!\n", pDataObject, pDropSource);
return DRAGDROP_S_DROP; return DRAGDROP_S_DROP;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment