Author: cwittich
Date: Sat Sep 13 13:49:51 2008
New Revision: 36196
URL:
http://svn.reactos.org/svn/reactos?rev=36196&view=rev
Log:
sync ole32 with wine 1.1.4
Modified:
trunk/reactos/dll/win32/ole32/clipboard.c
trunk/reactos/dll/win32/ole32/compobj.c
trunk/reactos/dll/win32/ole32/defaulthandler.c
trunk/reactos/dll/win32/ole32/moniker.c
trunk/reactos/dll/win32/ole32/ole32.rbuild
trunk/reactos/dll/win32/ole32/oleproxy.c
trunk/reactos/dll/win32/ole32/rpc.c
trunk/reactos/dll/win32/ole32/stg_prop.c
trunk/reactos/dll/win32/ole32/storage32.c
trunk/reactos/dll/win32/ole32/stubmanager.c
trunk/reactos/dll/win32/ole32/usrmarshal.c
trunk/reactos/include/psdk/comcat.idl
trunk/reactos/include/psdk/dispex.idl
trunk/reactos/include/psdk/mlang.idl
trunk/reactos/include/psdk/objsafe.idl
trunk/reactos/include/psdk/rpc.h
Modified: trunk/reactos/dll/win32/ole32/clipboard.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/clipboard.…
==============================================================================
--- trunk/reactos/dll/win32/ole32/clipboard.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/ole32/clipboard.c [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -583,6 +583,9 @@
if (!theOleClipboard)
return E_OUTOFMEMORY;
+ if (pDataObject == NULL)
+ return S_FALSE;
+
return (pDataObject == theOleClipboard->pIDataObjectSrc) ? S_OK : S_FALSE;
}
Modified: trunk/reactos/dll/win32/ole32/compobj.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/compobj.c?…
==============================================================================
--- trunk/reactos/dll/win32/ole32/compobj.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/ole32/compobj.c [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -1391,7 +1391,7 @@
return ret;
ret=WINE_StringFromCLSID(id,buf);
- if (!ret) {
+ if (ret == S_OK) {
DWORD len = MultiByteToWideChar( CP_ACP, 0, buf, -1, NULL, 0 );
*idstr = IMalloc_Alloc( mllc, len * sizeof(WCHAR) );
MultiByteToWideChar( CP_ACP, 0, buf, -1, *idstr, len );
@@ -2806,7 +2806,7 @@
if (!memcmp( clsidOld, clsidNew, sizeof(*clsidOld) ))
{
if (!RegQueryValueW(hkey, wszAutoTreatAs, auto_treat_as, &auto_treat_as_size)
&&
- !CLSIDFromString(auto_treat_as, &id))
+ CLSIDFromString(auto_treat_as, &id) == S_OK)
{
if (RegSetValueW(hkey, wszTreatAs, REG_SZ, auto_treat_as,
sizeof(auto_treat_as)))
{
@@ -3742,7 +3742,8 @@
*/
HRESULT WINAPI CoGetContextToken( ULONG_PTR *token )
{
- FIXME( "stub\n" );
+ static int calls;
+ if(!(calls++)) FIXME( "stub\n" );
if (token) *token = 0;
return E_NOTIMPL;
}
Modified: trunk/reactos/dll/win32/ole32/defaulthandler.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/defaulthan…
==============================================================================
--- trunk/reactos/dll/win32/ole32/defaulthandler.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/ole32/defaulthandler.c [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -715,7 +715,7 @@
dwDrawAspect, psizel->cx, psizel->cy);
if (object_is_running(This))
- IOleObject_SetExtent(This->pOleDelegate, dwDrawAspect, psizel);
+ return IOleObject_SetExtent(This->pOleDelegate, dwDrawAspect, psizel);
return OLE_E_NOTRUNNING;
}
Modified: trunk/reactos/dll/win32/ole32/moniker.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/moniker.c?…
==============================================================================
--- trunk/reactos/dll/win32/ole32/moniker.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/ole32/moniker.c [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -464,7 +464,7 @@
const void *pv = GlobalLock(hglobal);
rot_entry->object = HeapAlloc(GetProcessHeap(), 0,
FIELD_OFFSET(MInterfacePointer, abData[size]));
rot_entry->object->ulCntData = size;
- memcpy(&rot_entry->object->abData, pv, size);
+ memcpy(rot_entry->object->abData, pv, size);
GlobalUnlock(hglobal);
}
}
@@ -530,7 +530,7 @@
const void *pv = GlobalLock(hglobal);
moniker = HeapAlloc(GetProcessHeap(), 0, FIELD_OFFSET(InterfaceData,
abData[size]));
moniker->ulCntData = size;
- memcpy(&moniker->abData, pv, size);
+ memcpy(moniker->abData, pv, size);
GlobalUnlock(hglobal);
}
}
@@ -642,7 +642,7 @@
LIST_FOR_EACH_ENTRY(rot_entry, &This->rot, const struct rot_entry, entry)
{
if ((rot_entry->moniker_data->ulCntData == moniker_data->ulCntData)
&&
- !memcmp(&moniker_data->abData,
&rot_entry->moniker_data->abData, moniker_data->ulCntData))
+ !memcmp(moniker_data->abData, rot_entry->moniker_data->abData,
moniker_data->ulCntData))
{
hr = S_OK;
break;
@@ -714,7 +714,7 @@
LIST_FOR_EACH_ENTRY(rot_entry, &This->rot, struct rot_entry, entry)
{
if ((rot_entry->moniker_data->ulCntData == moniker_data->ulCntData)
&&
- !memcmp(&moniker_data->abData,
&rot_entry->moniker_data->abData, moniker_data->ulCntData))
+ !memcmp(moniker_data->abData, rot_entry->moniker_data->abData,
moniker_data->ulCntData))
{
IStream *pStream;
hr = create_stream_on_mip_ro(rot_entry->object, &pStream);
@@ -860,7 +860,7 @@
LIST_FOR_EACH_ENTRY(rot_entry, &This->rot, const struct rot_entry, entry)
{
if ((rot_entry->moniker_data->ulCntData == moniker_data->ulCntData)
&&
- !memcmp(&moniker_data->abData,
&rot_entry->moniker_data->abData, moniker_data->ulCntData))
+ !memcmp(moniker_data->abData, rot_entry->moniker_data->abData,
moniker_data->ulCntData))
{
*pfiletime = rot_entry->last_modified;
hr = S_OK;
Modified: trunk/reactos/dll/win32/ole32/ole32.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/ole32.rbui…
==============================================================================
--- trunk/reactos/dll/win32/ole32/ole32.rbuild [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/ole32/ole32.rbuild [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -9,15 +9,19 @@
<define name="__WINESRC__" />
<define name="WINVER">0x600</define>
<define name="_WIN32_WINNT">0x600</define>
+ <define name="_OLE32_" />
+ <define name="COM_NO_WINDOWS_H" />
<library>wine</library>
<library>advapi32</library>
<library>user32</library>
<library>gdi32</library>
<library>ole32_irot_client</library>
+ <library>ole32_proxy</library>
<library>rpcrt4</library>
<library>kernel32</library>
<library>ntdll</library>
<library>uuid</library>
+ <library>pseh</library>
<file>antimoniker.c</file>
<file>bindctx.c</file>
<file>classmoniker.c</file>
@@ -65,4 +69,13 @@
<module name="ole32_irot_client" type="rpcclient">
<file>irot.idl</file>
</module>
+<module name="ole32_proxy" type="rpcproxy"
allowwarnings="true">
+ <define name="_OLE32_" />
+ <define name="COM_NO_WINDOWS_H" />
+ <define name="__WINESRC__" />
+ <file>dcom.idl</file>
+ <file>ole32_unknwn.idl</file>
+ <file>ole32_objidl.idl</file>
+ <file>ole32_oleidl.idl</file>
+</module>
</group>
Modified: trunk/reactos/dll/win32/ole32/oleproxy.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/oleproxy.c…
==============================================================================
--- trunk/reactos/dll/win32/ole32/oleproxy.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/ole32/oleproxy.c [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -36,8 +36,7 @@
#include "objbase.h"
#include "ole2.h"
#include "rpc.h"
-#include "winerror.h"
-#include "wtypes.h"
+#include "rpcproxy.h"
#include "compobj_private.h"
#include "moniker.h"
@@ -46,947 +45,22 @@
WINE_DEFAULT_DEBUG_CHANNEL(ole);
-static ULONG WINAPI RURpcProxyBufferImpl_Release(LPRPCPROXYBUFFER iface);
+static CStdPSFactoryBuffer PSFactoryBuffer;
-/* From msdn:
- *
- * The first time a client requests a pointer to an interface on a
- * particular object, COM loads an IClassFactory stub in the server
- * process and uses it to marshal the first pointer back to the
- * client. In the client process, COM loads the generic proxy for the
- * class factory object and calls its implementation of IMarshal to
- * unmarshal that first pointer. COM then creates the first interface
- * proxy and hands it a pointer to the RPC channel. Finally, COM returns
- * the IClassFactory pointer to the client, which uses it to call
- * IClassFactory::CreateInstance, passing it a reference to the interface.
- *
- * Back in the server process, COM now creates a new instance of the
- * object, along with a stub for the requested interface. This stub marshals
- * the interface pointer back to the client process, where another object
- * proxy is created, this time for the object itself. Also created is a
- * proxy for the requested interface, a pointer to which is returned to
- * the client. With subsequent calls to other interfaces on the object,
- * COM will load the appropriate interface stubs and proxies as needed.
- */
-typedef struct _CFStub {
- const IRpcStubBufferVtbl *lpvtbl;
- LONG ref;
+CSTDSTUBBUFFERRELEASE(&PSFactoryBuffer)
- LPUNKNOWN pUnkServer;
-} CFStub;
+extern const ExtendedProxyFileInfo dcom_ProxyFileInfo;
+extern const ExtendedProxyFileInfo ole32_objidl_ProxyFileInfo;
+extern const ExtendedProxyFileInfo ole32_oleidl_ProxyFileInfo;
+extern const ExtendedProxyFileInfo ole32_unknwn_ProxyFileInfo;
-static HRESULT WINAPI
-CFStub_QueryInterface(LPRPCSTUBBUFFER iface, REFIID riid, LPVOID *ppv) {
- if (IsEqualIID(&IID_IUnknown,riid)||IsEqualIID(&IID_IRpcStubBuffer,riid)) {
- *ppv = (LPVOID)iface;
- IUnknown_AddRef(iface);
- return S_OK;
- }
- FIXME("(%s), interface not supported.\n",debugstr_guid(riid));
- return E_NOINTERFACE;
-}
-
-static ULONG WINAPI
-CFStub_AddRef(LPRPCSTUBBUFFER iface) {
- CFStub *This = (CFStub *)iface;
- return InterlockedIncrement(&This->ref);
-}
-
-static ULONG WINAPI
-CFStub_Release(LPRPCSTUBBUFFER iface) {
- CFStub *This = (CFStub *)iface;
- ULONG ref;
-
- ref = InterlockedDecrement(&This->ref);
- if (!ref) {
- IRpcStubBuffer_Disconnect(iface);
- HeapFree(GetProcessHeap(),0,This);
- }
- return ref;
-}
-
-static HRESULT WINAPI
-CFStub_Connect(LPRPCSTUBBUFFER iface, IUnknown *pUnkServer) {
- CFStub *This = (CFStub *)iface;
-
- This->pUnkServer = pUnkServer;
- IUnknown_AddRef(pUnkServer);
- return S_OK;
-}
-
-static void WINAPI
-CFStub_Disconnect(LPRPCSTUBBUFFER iface) {
- CFStub *This = (CFStub *)iface;
-
- if (This->pUnkServer) {
- IUnknown_Release(This->pUnkServer);
- This->pUnkServer = NULL;
- }
-}
-
-static HRESULT WINAPI
-CFStub_Invoke(
- LPRPCSTUBBUFFER iface,RPCOLEMESSAGE* msg,IRpcChannelBuffer* chanbuf
-) {
- CFStub *This = (CFStub *)iface;
- HRESULT hres;
-
- if (msg->iMethod == 3) { /* CreateInstance */
- IID iid;
- IClassFactory *classfac;
- IUnknown *ppv;
- IStream *pStm;
- STATSTG ststg;
- ULARGE_INTEGER newpos;
- LARGE_INTEGER seekto;
- ULONG res;
-
- if (msg->cbBuffer < sizeof(IID)) {
- FIXME("Not enough bytes in buffer (%d)?\n",msg->cbBuffer);
- return E_FAIL;
- }
- memcpy(&iid,msg->Buffer,sizeof(iid));
- TRACE("->CreateInstance(%s)\n",debugstr_guid(&iid));
- hres =
IUnknown_QueryInterface(This->pUnkServer,&IID_IClassFactory,(LPVOID*)&classfac);
- if (hres) {
- FIXME("Ole server does not provide an IClassFactory?\n");
- return hres;
- }
- hres = IClassFactory_CreateInstance(classfac,NULL,&iid,(LPVOID*)&ppv);
- IClassFactory_Release(classfac);
- msg->cbBuffer = 0;
- if (hres) {
- FIXME("Failed to create an instance of %s\n",debugstr_guid(&iid));
- goto getbuffer;
- }
- hres = CreateStreamOnHGlobal(0,TRUE,&pStm);
- if (hres) {
- FIXME("Failed to create stream on hglobal\n");
- goto getbuffer;
- }
- hres = IStream_Write(pStm, &ppv, sizeof(ppv), NULL);
- if (hres) {
- ERR("IStream_Write failed, 0x%08x\n", hres);
- goto getbuffer;
- }
- if (ppv) {
- hres = CoMarshalInterface(pStm,&iid,ppv,0,NULL,0);
- IUnknown_Release(ppv);
- if (hres) {
- FIXME("CoMarshalInterface failed, %x!\n",hres);
- goto getbuffer;
- }
- }
- hres = IStream_Stat(pStm,&ststg,0);
- if (hres) {
- FIXME("Stat failed.\n");
- goto getbuffer;
- }
-
- msg->cbBuffer = ststg.cbSize.u.LowPart;
-
-getbuffer:
- IRpcChannelBuffer_GetBuffer(chanbuf, msg, &IID_IClassFactory);
- if (hres) return hres;
-
- seekto.u.LowPart = 0;seekto.u.HighPart = 0;
- hres = IStream_Seek(pStm,seekto,STREAM_SEEK_SET,&newpos);
- if (hres) {
- FIXME("IStream_Seek failed, %x\n",hres);
- return hres;
- }
- hres = IStream_Read(pStm,msg->Buffer,msg->cbBuffer,&res);
- if (hres) {
- FIXME("Stream Read failed, %x\n",hres);
- return hres;
- }
- IStream_Release(pStm);
- return S_OK;
- }
- FIXME("(%p,%p), stub!\n",msg,chanbuf);
- FIXME("iMethod is %d\n",msg->iMethod);
- FIXME("cbBuffer is %d\n",msg->cbBuffer);
- return E_FAIL;
-}
-
-static LPRPCSTUBBUFFER WINAPI
-CFStub_IsIIDSupported(LPRPCSTUBBUFFER iface,REFIID riid) {
- FIXME("(%s), stub!\n",debugstr_guid(riid));
- return NULL;
-}
-
-static ULONG WINAPI
-CFStub_CountRefs(LPRPCSTUBBUFFER iface) {
- FIXME("(), stub!\n");
- return 1;
-}
-
-static HRESULT WINAPI
-CFStub_DebugServerQueryInterface(LPRPCSTUBBUFFER iface,void** ppv) {
- FIXME("(%p), stub!\n",ppv);
- return E_FAIL;
-}
-static void WINAPI
-CFStub_DebugServerRelease(LPRPCSTUBBUFFER iface,void *pv) {
- FIXME("(%p), stub!\n",pv);
-}
-
-static const IRpcStubBufferVtbl cfstubvt = {
- CFStub_QueryInterface,
- CFStub_AddRef,
- CFStub_Release,
- CFStub_Connect,
- CFStub_Disconnect,
- CFStub_Invoke,
- CFStub_IsIIDSupported,
- CFStub_CountRefs,
- CFStub_DebugServerQueryInterface,
- CFStub_DebugServerRelease
+static const ProxyFileInfo *OLE32_ProxyFileList[] = {
+ &dcom_ProxyFileInfo,
+ &ole32_objidl_ProxyFileInfo,
+ &ole32_oleidl_ProxyFileInfo,
+ &ole32_unknwn_ProxyFileInfo,
+ NULL
};
-
-static HRESULT
-CFStub_Construct(LPRPCSTUBBUFFER *ppv) {
- CFStub *cfstub;
- cfstub = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(CFStub));
- if (!cfstub)
- return E_OUTOFMEMORY;
- *ppv = (LPRPCSTUBBUFFER)cfstub;
- cfstub->lpvtbl = &cfstubvt;
- cfstub->ref = 1;
- return S_OK;
-}
-
-/* Since we create proxy buffers and classfactory in a pair, there is
- * no need for 2 separate structs. Just put them in one, but remember
- * the refcount.
- */
-typedef struct _CFProxy {
- const IClassFactoryVtbl *lpvtbl_cf;
- const IRpcProxyBufferVtbl *lpvtbl_proxy;
- LONG ref;
-
- IRpcChannelBuffer *chanbuf;
- IUnknown *outer_unknown;
-} CFProxy;
-
-static HRESULT WINAPI IRpcProxyBufferImpl_QueryInterface(LPRPCPROXYBUFFER iface,REFIID
riid,LPVOID *ppv) {
- *ppv = NULL;
- if (IsEqualIID(riid,&IID_IRpcProxyBuffer)||IsEqualIID(riid,&IID_IUnknown)) {
- IRpcProxyBuffer_AddRef(iface);
- *ppv = (LPVOID)iface;
- return S_OK;
- }
- FIXME("(%s), no interface.\n",debugstr_guid(riid));
- return E_NOINTERFACE;
-}
-
-static ULONG WINAPI IRpcProxyBufferImpl_AddRef(LPRPCPROXYBUFFER iface) {
- ICOM_THIS_MULTI(CFProxy,lpvtbl_proxy,iface);
- return InterlockedIncrement(&This->ref);
-}
-
-static ULONG WINAPI IRpcProxyBufferImpl_Release(LPRPCPROXYBUFFER iface) {
- ICOM_THIS_MULTI(CFProxy,lpvtbl_proxy,iface);
- ULONG ref = InterlockedDecrement(&This->ref);
-
- if (!ref) {
- IRpcProxyBuffer_Disconnect(iface);
- HeapFree(GetProcessHeap(),0,This);
- }
- return ref;
-}
-
-static HRESULT WINAPI IRpcProxyBufferImpl_Connect(LPRPCPROXYBUFFER
iface,IRpcChannelBuffer* pRpcChannelBuffer) {
- ICOM_THIS_MULTI(CFProxy,lpvtbl_proxy,iface);
-
- This->chanbuf = pRpcChannelBuffer;
- IRpcChannelBuffer_AddRef(This->chanbuf);
- return S_OK;
-}
-static void WINAPI IRpcProxyBufferImpl_Disconnect(LPRPCPROXYBUFFER iface) {
- ICOM_THIS_MULTI(CFProxy,lpvtbl_proxy,iface);
- if (This->chanbuf) {
- IRpcChannelBuffer_Release(This->chanbuf);
- This->chanbuf = NULL;
- }
-}
-
-static HRESULT WINAPI
-CFProxy_QueryInterface(LPCLASSFACTORY iface,REFIID riid, LPVOID *ppv) {
- ICOM_THIS_MULTI(CFProxy,lpvtbl_cf,iface);
- if (This->outer_unknown) return IUnknown_QueryInterface(This->outer_unknown,
riid, ppv);
- *ppv = NULL;
- if (IsEqualIID(&IID_IClassFactory,riid) || IsEqualIID(&IID_IUnknown,riid)) {
- *ppv = (LPVOID)iface;
- IClassFactory_AddRef(iface);
- return S_OK;
- }
- if (IsEqualIID(riid,&IID_IMarshal)) /* just to avoid debug output */
- return E_NOINTERFACE;
- FIXME("Unhandled interface: %s\n",debugstr_guid(riid));
- return E_NOINTERFACE;
-}
-
-static ULONG WINAPI CFProxy_AddRef(LPCLASSFACTORY iface) {
- ICOM_THIS_MULTI(CFProxy,lpvtbl_cf,iface);
- if (This->outer_unknown) return IUnknown_AddRef(This->outer_unknown);
- return InterlockedIncrement(&This->ref);
-}
-
-static ULONG WINAPI CFProxy_Release(LPCLASSFACTORY iface) {
- ICOM_THIS_MULTI(CFProxy,lpvtbl_cf,iface);
- if (This->outer_unknown)
- return IUnknown_Release(This->outer_unknown);
- else
- return IRpcProxyBufferImpl_Release((IRpcProxyBuffer
*)&This->lpvtbl_proxy);
-}
-
-static HRESULT WINAPI CFProxy_CreateInstance(
- LPCLASSFACTORY iface,
- LPUNKNOWN pUnkOuter,/* [in] */
- REFIID riid, /* [in] */
- LPVOID *ppv /* [out] */
-) {
- ICOM_THIS_MULTI(CFProxy,lpvtbl_cf,iface);
- HRESULT hres;
- LPSTREAM pStream;
- HGLOBAL hGlobal;
- ULONG srstatus;
- RPCOLEMESSAGE msg;
-
- TRACE("(%p,%s,%p)\n",pUnkOuter,debugstr_guid(riid),ppv);
-
- /* Send CreateInstance to the remote classfactory.
- *
- * Data: Only the 'IID'.
- */
- memset(&msg, 0, sizeof(msg));
- msg.iMethod = 3;
- msg.cbBuffer = sizeof(*riid);
- hres =
IRpcChannelBuffer_GetBuffer(This->chanbuf,&msg,&IID_IClassFactory);
- if (hres) {
- FIXME("IRpcChannelBuffer_GetBuffer failed with %x?\n",hres);
- return hres;
- }
- memcpy(msg.Buffer,riid,sizeof(*riid));
- hres = IRpcChannelBuffer_SendReceive(This->chanbuf,&msg,&srstatus);
- if (hres) {
- FIXME("IRpcChannelBuffer_SendReceive failed with %x?\n",hres);
- IRpcChannelBuffer_FreeBuffer(This->chanbuf,&msg);
- return hres;
- }
-
- if (!msg.cbBuffer) { /* interface not found on remote */
- IRpcChannelBuffer_FreeBuffer(This->chanbuf,&msg);
- return srstatus;
- }
-
- /* We got back: [Marshalled Interface data] */
- TRACE("got %d bytes data.\n",msg.cbBuffer);
- hGlobal = GlobalAlloc(GMEM_MOVEABLE|GMEM_NODISCARD|GMEM_SHARE,msg.cbBuffer);
- memcpy(GlobalLock(hGlobal),msg.Buffer,msg.cbBuffer);
- hres = CreateStreamOnHGlobal(hGlobal,TRUE,&pStream);
- if (hres != S_OK) {
- FIXME("CreateStreamOnHGlobal failed with %x\n",hres);
- IRpcChannelBuffer_FreeBuffer(This->chanbuf,&msg);
- GlobalFree(hGlobal);
- return hres;
- }
- hres = IStream_Read(pStream, ppv, sizeof(*ppv), NULL);
- if (hres != S_OK)
- hres = E_FAIL;
- else if (*ppv) {
- hres = CoUnmarshalInterface(
- pStream,
- riid,
- ppv
- );
- }
- IStream_Release(pStream); /* Does GlobalFree hGlobal too. */
-
- IRpcChannelBuffer_FreeBuffer(This->chanbuf,&msg);
-
- if (hres) {
- FIXME("CoMarshalInterface failed, %x\n",hres);
- return hres;
- }
- return S_OK;
-}
-
-static HRESULT WINAPI CFProxy_LockServer(LPCLASSFACTORY iface,BOOL fLock) {
- /*ICOM_THIS_MULTI(CFProxy,lpvtbl_cf,iface);*/
- FIXME("(%d), stub!\n",fLock);
- /* basically: write BOOL, read empty */
- return S_OK;
-}
-
-static const IRpcProxyBufferVtbl pspbvtbl = {
- IRpcProxyBufferImpl_QueryInterface,
- IRpcProxyBufferImpl_AddRef,
- IRpcProxyBufferImpl_Release,
- IRpcProxyBufferImpl_Connect,
- IRpcProxyBufferImpl_Disconnect
-};
-static const IClassFactoryVtbl cfproxyvt = {
- CFProxy_QueryInterface,
- CFProxy_AddRef,
- CFProxy_Release,
- CFProxy_CreateInstance,
- CFProxy_LockServer
-};
-
-static HRESULT
-CFProxy_Construct(IUnknown *pUnkOuter, LPVOID *ppv,LPVOID *ppProxy) {
- CFProxy *cf;
-
- cf = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(CFProxy));
- if (!cf)
- return E_OUTOFMEMORY;
-
- cf->lpvtbl_cf = &cfproxyvt;
- cf->lpvtbl_proxy = &pspbvtbl;
- /* one reference for the proxy buffer */
- cf->ref = 1;
- cf->outer_unknown = pUnkOuter;
- *ppv = &(cf->lpvtbl_cf);
- *ppProxy = &(cf->lpvtbl_proxy);
- /* and one reference for the object */
- IUnknown_AddRef((IUnknown *)*ppv);
- return S_OK;
-}
-
-
-/********************* IRemUnknown Proxy/Stub ********************************/
-
-typedef struct
-{
- const IRpcStubBufferVtbl *lpVtbl;
- LONG refs;
- IRemUnknown *iface;
-} RemUnkStub;
-
-static HRESULT WINAPI RemUnkStub_QueryInterface(LPRPCSTUBBUFFER iface,
- REFIID riid,
- LPVOID *obj)
-{
- RemUnkStub *This = (RemUnkStub *)iface;
- TRACE("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(riid),obj);
- if (IsEqualGUID(&IID_IUnknown,riid) ||
- IsEqualGUID(&IID_IRpcStubBuffer,riid)) {
- *obj = This;
- return S_OK;
- }
- return E_NOINTERFACE;
-}
-
-static ULONG WINAPI RemUnkStub_AddRef(LPRPCSTUBBUFFER iface)
-{
- RemUnkStub *This = (RemUnkStub *)iface;
- TRACE("(%p)->AddRef()\n",This);
- return InterlockedIncrement(&This->refs);
-}
-
-static ULONG WINAPI RemUnkStub_Release(LPRPCSTUBBUFFER iface)
-{
- RemUnkStub *This = (RemUnkStub *)iface;
- ULONG refs;
- TRACE("(%p)->Release()\n",This);
- refs = InterlockedDecrement(&This->refs);
- if (!refs)
- {
- IRpcStubBuffer_Disconnect(iface);
- HeapFree(GetProcessHeap(), 0, This);
- }
- return refs;
-}
-
-static HRESULT WINAPI RemUnkStub_Connect(LPRPCSTUBBUFFER iface,
- LPUNKNOWN lpUnkServer)
-{
- RemUnkStub *This = (RemUnkStub *)iface;
- TRACE("(%p)->Connect(%p)\n",This,lpUnkServer);
- This->iface = (IRemUnknown*)lpUnkServer;
- IRemUnknown_AddRef(This->iface);
- return S_OK;
-}
-
-static void WINAPI RemUnkStub_Disconnect(LPRPCSTUBBUFFER iface)
-{
- RemUnkStub *This = (RemUnkStub *)iface;
- TRACE("(%p)->Disconnect()\n",This);
- IUnknown_Release(This->iface);
- This->iface = NULL;
-}
-
-static HRESULT WINAPI RemUnkStub_Invoke(LPRPCSTUBBUFFER iface,
- PRPCOLEMESSAGE pMsg,
- LPRPCCHANNELBUFFER pChannel)
-{
- RemUnkStub *This = (RemUnkStub *)iface;
- ULONG iMethod = pMsg->iMethod;
- LPBYTE buf = pMsg->Buffer;
- HRESULT hr = RPC_E_INVALIDMETHOD;
-
- TRACE("(%p)->Invoke(%p,%p) method %d\n", This, pMsg, pChannel, iMethod);
- switch (iMethod)
- {
- case 3: /* RemQueryInterface */
- {
- IPID ipid;
- ULONG cRefs;
- USHORT cIids;
- IID *iids;
- REMQIRESULT *pQIResults = NULL;
-
- /* in */
- memcpy(&ipid, buf, sizeof(ipid));
- buf += sizeof(ipid);
- memcpy(&cRefs, buf, sizeof(cRefs));
- buf += sizeof(cRefs);
- memcpy(&cIids, buf, sizeof(cIids));
- buf += sizeof(cIids);
- iids = (IID *)buf;
-
- hr = IRemUnknown_RemQueryInterface(This->iface, &ipid, cRefs, cIids, iids,
&pQIResults);
-
- /* out */
- pMsg->cbBuffer = cIids * sizeof(REMQIRESULT) + sizeof(HRESULT);
-
- IRpcChannelBuffer_GetBuffer(pChannel, pMsg, &IID_IRemUnknown);
-
- buf = pMsg->Buffer;
- *(HRESULT *)buf = hr;
- buf += sizeof(HRESULT);
-
- if (hr == S_OK)
- /* FIXME: pQIResults is a unique pointer so pQIResults can be NULL! */
- memcpy(buf, pQIResults, cIids * sizeof(REMQIRESULT));
-
- CoTaskMemFree(pQIResults);
-
- break;
- }
- case 4: /* RemAddRef */
- {
- USHORT cIids;
- REMINTERFACEREF *ir;
- HRESULT *pResults;
-
- /* in */
- memcpy(&cIids, buf, sizeof(USHORT));
- buf += sizeof(USHORT);
- ir = (REMINTERFACEREF*)buf;
- pResults = CoTaskMemAlloc(cIids * sizeof(HRESULT));
- if (!pResults) return E_OUTOFMEMORY;
-
- hr = IRemUnknown_RemAddRef(This->iface, cIids, ir, pResults);
-
- /* out */
- pMsg->cbBuffer = cIids * sizeof(HRESULT);
-
- IRpcChannelBuffer_GetBuffer(pChannel, pMsg, &IID_IRemUnknown);
- if (!hr)
- {
- buf = pMsg->Buffer;
- memcpy(buf, pResults, cIids * sizeof(HRESULT));
- }
-
- CoTaskMemFree(pResults);
-
- break;
- }
- case 5: /* RemRelease */
- {
- USHORT cIids;
- REMINTERFACEREF *ir;
-
- /* in */
- memcpy(&cIids, buf, sizeof(USHORT));
- buf += sizeof(USHORT);
- ir = (REMINTERFACEREF*)buf;
-
- hr = IRemUnknown_RemRelease(This->iface, cIids, ir);
-
- /* out */
- pMsg->cbBuffer = 0;
- IRpcChannelBuffer_GetBuffer(pChannel, pMsg, &IID_IRemUnknown);
- break;
- }
- }
- return hr;
-}
-
-static LPRPCSTUBBUFFER WINAPI RemUnkStub_IsIIDSupported(LPRPCSTUBBUFFER iface,
- REFIID riid)
-{
- RemUnkStub *This = (RemUnkStub *)iface;
- TRACE("(%p)->IsIIDSupported(%s)\n", This, debugstr_guid(riid));
- return IsEqualGUID(&IID_IRemUnknown, riid) ? iface : NULL;
-}
-
-static ULONG WINAPI RemUnkStub_CountRefs(LPRPCSTUBBUFFER iface)
-{
- RemUnkStub *This = (RemUnkStub *)iface;
- FIXME("(%p)->CountRefs()\n", This);
- return 1;
-}
-
-static HRESULT WINAPI RemUnkStub_DebugServerQueryInterface(LPRPCSTUBBUFFER iface,
- LPVOID *ppv)
-{
- RemUnkStub *This = (RemUnkStub *)iface;
- FIXME("(%p)->DebugServerQueryInterface(%p)\n",This,ppv);
- return E_NOINTERFACE;
-}
-
-static void WINAPI RemUnkStub_DebugServerRelease(LPRPCSTUBBUFFER iface,
- LPVOID pv)
-{
- RemUnkStub *This = (RemUnkStub *)iface;
- FIXME("(%p)->DebugServerRelease(%p)\n", This, pv);
-}
-
-static const IRpcStubBufferVtbl RemUnkStub_VTable =
-{
- RemUnkStub_QueryInterface,
- RemUnkStub_AddRef,
- RemUnkStub_Release,
- RemUnkStub_Connect,
- RemUnkStub_Disconnect,
- RemUnkStub_Invoke,
- RemUnkStub_IsIIDSupported,
- RemUnkStub_CountRefs,
- RemUnkStub_DebugServerQueryInterface,
- RemUnkStub_DebugServerRelease
-};
-
-static HRESULT RemUnkStub_Construct(IRpcStubBuffer **ppStub)
-{
- RemUnkStub *This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This));
- if (!This) return E_OUTOFMEMORY;
- This->lpVtbl = &RemUnkStub_VTable;
- This->refs = 1;
- This->iface = NULL;
- *ppStub = (IRpcStubBuffer*)This;
- return S_OK;
-}
-
-
-typedef struct _RemUnkProxy {
- const IRemUnknownVtbl *lpvtbl_remunk;
- const IRpcProxyBufferVtbl *lpvtbl_proxy;
- LONG refs;
-
- IRpcChannelBuffer *chan;
- IUnknown *outer_unknown;
-} RemUnkProxy;
-
-static HRESULT WINAPI RemUnkProxy_QueryInterface(LPREMUNKNOWN iface, REFIID riid, void
**ppv)
-{
- RemUnkProxy *This = (RemUnkProxy *)iface;
- if (This->outer_unknown)
- return IUnknown_QueryInterface(This->outer_unknown, riid, ppv);
- if (IsEqualIID(riid, &IID_IUnknown) ||
- IsEqualIID(riid, &IID_IRemUnknown))
- {
- IRemUnknown_AddRef(iface);
- *ppv = (LPVOID)iface;
- return S_OK;
- }
- return E_NOINTERFACE;
-}
-
-static ULONG WINAPI RemUnkProxy_AddRef(LPREMUNKNOWN iface)
-{
- RemUnkProxy *This = (RemUnkProxy *)iface;
- ULONG refs;
-
- TRACE("(%p)->AddRef()\n",This);
-
- if (This->outer_unknown)
- refs = IUnknown_AddRef(This->outer_unknown);
- else
- refs = InterlockedIncrement(&This->refs);
- return refs;
-}
-
-static ULONG WINAPI RemUnkProxy_Release(LPREMUNKNOWN iface)
-{
- RemUnkProxy *This = (RemUnkProxy *)iface;
-
- TRACE("(%p)->Release()\n",This);
- if (This->outer_unknown)
- return IUnknown_Release(This->outer_unknown);
- else
- return IRpcProxyBufferImpl_Release((IRpcProxyBuffer *)&This->lpvtbl_proxy);
-}
-
-static HRESULT WINAPI RemUnkProxy_RemQueryInterface(LPREMUNKNOWN iface,
- REFIPID ripid,
- ULONG cRefs,
- USHORT cIids,
- IID* iids,
- REMQIRESULT** ppQIResults)
-{
- RemUnkProxy *This = (RemUnkProxy *)iface;
- RPCOLEMESSAGE msg;
- HRESULT hr = S_OK;
- ULONG status;
-
- TRACE("(%p)->(%s,%d,%d,%p,%p)\n",This,
- debugstr_guid(ripid),cRefs,cIids,iids,ppQIResults);
-
- *ppQIResults = NULL;
- memset(&msg, 0, sizeof(msg));
- msg.iMethod = 3;
- msg.cbBuffer = sizeof(IPID) + sizeof(ULONG) +
- sizeof(USHORT) + cIids*sizeof(IID);
- hr = IRpcChannelBuffer_GetBuffer(This->chan, &msg, &IID_IRemUnknown);
- if (SUCCEEDED(hr)) {
- LPBYTE buf = msg.Buffer;
- memcpy(buf, ripid, sizeof(IPID));
- buf += sizeof(IPID);
- memcpy(buf, &cRefs, sizeof(ULONG));
- buf += sizeof(ULONG);
- memcpy(buf, &cIids, sizeof(USHORT));
- buf += sizeof(USHORT);
- memcpy(buf, iids, cIids*sizeof(IID));
-
- hr = IRpcChannelBuffer_SendReceive(This->chan, &msg, &status);
-
- buf = msg.Buffer;
-
- if (SUCCEEDED(hr)) {
- hr = *(HRESULT *)buf;
- buf += sizeof(HRESULT);
- }
-
- if (SUCCEEDED(hr)) {
- *ppQIResults = CoTaskMemAlloc(cIids*sizeof(REMQIRESULT));
- memcpy(*ppQIResults, buf, cIids*sizeof(REMQIRESULT));
- }
-
- IRpcChannelBuffer_FreeBuffer(This->chan, &msg);
- }
-
- return hr;
-}
-
-static HRESULT WINAPI RemUnkProxy_RemAddRef(LPREMUNKNOWN iface,
- USHORT cInterfaceRefs,
- REMINTERFACEREF* InterfaceRefs,
- HRESULT* pResults)
-{
- RemUnkProxy *This = (RemUnkProxy *)iface;
- RPCOLEMESSAGE msg;
- HRESULT hr = S_OK;
- ULONG status;
-
- TRACE("(%p)->(%d,%p,%p)\n",This,
- cInterfaceRefs,InterfaceRefs,pResults);
-
- memset(&msg, 0, sizeof(msg));
- msg.iMethod = 4;
- msg.cbBuffer = sizeof(USHORT) + cInterfaceRefs*sizeof(REMINTERFACEREF);
- hr = IRpcChannelBuffer_GetBuffer(This->chan, &msg, &IID_IRemUnknown);
- if (SUCCEEDED(hr)) {
- LPBYTE buf = msg.Buffer;
- memcpy(buf, &cInterfaceRefs, sizeof(USHORT));
- buf += sizeof(USHORT);
- memcpy(buf, InterfaceRefs, cInterfaceRefs*sizeof(REMINTERFACEREF));
-
- hr = IRpcChannelBuffer_SendReceive(This->chan, &msg, &status);
-
- if (SUCCEEDED(hr)) {
- buf = msg.Buffer;
- memcpy(pResults, buf, cInterfaceRefs*sizeof(HRESULT));
- }
-
- IRpcChannelBuffer_FreeBuffer(This->chan, &msg);
- }
-
- return hr;
-}
-
-static HRESULT WINAPI RemUnkProxy_RemRelease(LPREMUNKNOWN iface,
- USHORT cInterfaceRefs,
- REMINTERFACEREF* InterfaceRefs)
-{
- RemUnkProxy *This = (RemUnkProxy *)iface;
- RPCOLEMESSAGE msg;
- HRESULT hr = S_OK;
- ULONG status;
-
- TRACE("(%p)->(%d,%p)\n",This,
- cInterfaceRefs,InterfaceRefs);
-
- memset(&msg, 0, sizeof(msg));
- msg.iMethod = 5;
- msg.cbBuffer = sizeof(USHORT) + cInterfaceRefs*sizeof(REMINTERFACEREF);
- hr = IRpcChannelBuffer_GetBuffer(This->chan, &msg, &IID_IRemUnknown);
- if (SUCCEEDED(hr)) {
- LPBYTE buf = msg.Buffer;
- memcpy(buf, &cInterfaceRefs, sizeof(USHORT));
- buf += sizeof(USHORT);
- memcpy(buf, InterfaceRefs, cInterfaceRefs*sizeof(REMINTERFACEREF));
-
- hr = IRpcChannelBuffer_SendReceive(This->chan, &msg, &status);
-
- IRpcChannelBuffer_FreeBuffer(This->chan, &msg);
- }
-
- return hr;
-}
-
-static const IRemUnknownVtbl RemUnkProxy_VTable =
-{
- RemUnkProxy_QueryInterface,
- RemUnkProxy_AddRef,
- RemUnkProxy_Release,
- RemUnkProxy_RemQueryInterface,
- RemUnkProxy_RemAddRef,
- RemUnkProxy_RemRelease
-};
-
-
-static HRESULT WINAPI RURpcProxyBufferImpl_QueryInterface(LPRPCPROXYBUFFER iface,REFIID
riid,LPVOID *ppv) {
- *ppv = NULL;
- if (IsEqualIID(riid,&IID_IRpcProxyBuffer)||IsEqualIID(riid,&IID_IUnknown)) {
- IRpcProxyBuffer_AddRef(iface);
- *ppv = (LPVOID)iface;
- return S_OK;
- }
- FIXME("(%s), no interface.\n",debugstr_guid(riid));
- return E_NOINTERFACE;
-}
-
-static ULONG WINAPI RURpcProxyBufferImpl_AddRef(LPRPCPROXYBUFFER iface) {
- ICOM_THIS_MULTI(RemUnkProxy,lpvtbl_proxy,iface);
- TRACE("%p, %d\n", iface, This->refs + 1);
- return InterlockedIncrement(&This->refs);
-}
-
-static ULONG WINAPI RURpcProxyBufferImpl_Release(LPRPCPROXYBUFFER iface) {
- ICOM_THIS_MULTI(RemUnkProxy,lpvtbl_proxy,iface);
- ULONG ref = InterlockedDecrement(&This->refs);
- TRACE("%p, %d\n", iface, ref);
- if (!ref) {
- IRpcProxyBuffer_Disconnect(iface);
- HeapFree(GetProcessHeap(),0,This);
- }
- return ref;
-}
-
-static HRESULT WINAPI RURpcProxyBufferImpl_Connect(LPRPCPROXYBUFFER
iface,IRpcChannelBuffer* pRpcChannelBuffer) {
- ICOM_THIS_MULTI(RemUnkProxy,lpvtbl_proxy,iface);
-
- TRACE("%p, %p\n", iface, pRpcChannelBuffer);
- This->chan = pRpcChannelBuffer;
- IRpcChannelBuffer_AddRef(This->chan);
- return S_OK;
-}
-static void WINAPI RURpcProxyBufferImpl_Disconnect(LPRPCPROXYBUFFER iface) {
- ICOM_THIS_MULTI(RemUnkProxy,lpvtbl_proxy,iface);
- TRACE("%p, %p\n", iface, This->chan);
- if (This->chan) {
- IRpcChannelBuffer_Release(This->chan);
- This->chan = NULL;
- }
-}
-
-
-static const IRpcProxyBufferVtbl RURpcProxyBuffer_VTable = {
- RURpcProxyBufferImpl_QueryInterface,
- RURpcProxyBufferImpl_AddRef,
- RURpcProxyBufferImpl_Release,
- RURpcProxyBufferImpl_Connect,
- RURpcProxyBufferImpl_Disconnect
-};
-
-static HRESULT
-RemUnkProxy_Construct(IUnknown *pUnkOuter, LPVOID *ppv,LPVOID *ppProxy) {
- RemUnkProxy *This;
-
- This = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(*This));
- if (!This)
- return E_OUTOFMEMORY;
-
- This->lpvtbl_remunk = &RemUnkProxy_VTable;
- This->lpvtbl_proxy = &RURpcProxyBuffer_VTable;
- /* only one reference for the proxy buffer */
- This->refs = 1;
- This->outer_unknown = pUnkOuter;
- *ppv = &(This->lpvtbl_remunk);
- *ppProxy = &(This->lpvtbl_proxy);
- /* and one reference for the object */
- IUnknown_AddRef((IUnknown *)*ppv);
- return S_OK;
-}
-
-
-/********************* OLE Proxy/Stub Factory ********************************/
-static HRESULT WINAPI
-PSFacBuf_QueryInterface(LPPSFACTORYBUFFER iface, REFIID iid, LPVOID *ppv) {
- if (IsEqualIID(iid,&IID_IPSFactoryBuffer)||IsEqualIID(iid,&IID_IUnknown)) {
- *ppv = (LPVOID)iface;
- /* No ref counting, static class */
- return S_OK;
- }
- FIXME("(%s) unknown IID?\n",debugstr_guid(iid));
- return E_NOINTERFACE;
-}
-
-static ULONG WINAPI PSFacBuf_AddRef(LPPSFACTORYBUFFER iface) { return 2; }
-static ULONG WINAPI PSFacBuf_Release(LPPSFACTORYBUFFER iface) { return 1; }
-
-static HRESULT WINAPI
-PSFacBuf_CreateProxy(
- LPPSFACTORYBUFFER iface, IUnknown* pUnkOuter, REFIID riid,
- IRpcProxyBuffer **ppProxy, LPVOID *ppv
-) {
- if (IsEqualIID(&IID_IClassFactory,riid))
- return CFProxy_Construct(pUnkOuter, ppv,(LPVOID*)ppProxy);
- else if (IsEqualIID(&IID_IRemUnknown,riid))
- return RemUnkProxy_Construct(pUnkOuter, ppv,(LPVOID*)ppProxy);
- FIXME("proxying not implemented for (%s) yet!\n",debugstr_guid(riid));
- return E_FAIL;
-}
-
-static HRESULT WINAPI
-PSFacBuf_CreateStub(
- LPPSFACTORYBUFFER iface, REFIID riid,IUnknown *pUnkServer,
- IRpcStubBuffer** ppStub
-) {
- HRESULT hres;
-
- TRACE("(%s,%p,%p)\n",debugstr_guid(riid),pUnkServer,ppStub);
-
- if (IsEqualIID(&IID_IClassFactory, riid) ||
- IsEqualIID(&IID_IUnknown, riid) /* FIXME: fixup stub manager and remove
this*/) {
- hres = CFStub_Construct(ppStub);
- if (!hres)
- IRpcStubBuffer_Connect((*ppStub),pUnkServer);
- return hres;
- } else if (IsEqualIID(&IID_IRemUnknown,riid)) {
- hres = RemUnkStub_Construct(ppStub);
- if (!hres)
- IRpcStubBuffer_Connect((*ppStub),pUnkServer);
- return hres;
- }
- FIXME("stubbing not implemented for (%s) yet!\n",debugstr_guid(riid));
- return E_FAIL;
-}
-
-static const IPSFactoryBufferVtbl psfacbufvtbl = {
- PSFacBuf_QueryInterface,
- PSFacBuf_AddRef,
- PSFacBuf_Release,
- PSFacBuf_CreateProxy,
- PSFacBuf_CreateStub
-};
-
-/* This is the whole PSFactoryBuffer object, just the vtableptr */
-static const IPSFactoryBufferVtbl *lppsfac = &psfacbufvtbl;
/***********************************************************************
* DllGetClassObject [OLE32.@]
@@ -994,8 +68,6 @@
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid,LPVOID *ppv)
{
*ppv = NULL;
- if (IsEqualIID(rclsid, &CLSID_PSFactoryBuffer))
- return IPSFactoryBuffer_QueryInterface((IPSFactoryBuffer *)&lppsfac, iid,
ppv);
if (IsEqualIID(rclsid,&CLSID_DfMarshal)&&(
IsEqualIID(iid,&IID_IClassFactory) ||
IsEqualIID(iid,&IID_IUnknown)
@@ -1017,6 +89,6 @@
if (IsEqualCLSID(rclsid, &CLSID_PointerMoniker))
return PointerMonikerCF_Create(iid, ppv);
-
FIXME("\n\tCLSID:\t%s,\n\tIID:\t%s\n",debugstr_guid(rclsid),debugstr_guid(iid));
- return CLASS_E_CLASSNOTAVAILABLE;
+ return NdrDllGetClassObject(rclsid, iid, ppv, OLE32_ProxyFileList,
+ &CLSID_PSFactoryBuffer, &PSFactoryBuffer);
}
Modified: trunk/reactos/dll/win32/ole32/rpc.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/rpc.c?rev=…
==============================================================================
--- trunk/reactos/dll/win32/ole32/rpc.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/ole32/rpc.c [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -1584,7 +1584,7 @@
oxid_info->ipidRemUnknown.Data1 = 0xffffffff;
oxid_info->ipidRemUnknown.Data2 = 0xffff;
oxid_info->ipidRemUnknown.Data3 = 0xffff;
- memcpy(&oxid_info->ipidRemUnknown.Data4, &oxid, sizeof(OXID));
+ memcpy(oxid_info->ipidRemUnknown.Data4, &oxid, sizeof(OXID));
oxid_info->psa = NULL /* FIXME */;
return S_OK;
Modified: trunk/reactos/dll/win32/ole32/stg_prop.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/stg_prop.c…
==============================================================================
--- trunk/reactos/dll/win32/ole32/stg_prop.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/ole32/stg_prop.c [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -1717,7 +1717,7 @@
len = var->u.pclipdata->cbSize;
StorageUtl_WriteDWord((LPBYTE)&cf_hdr[0], 0, len + 8);
StorageUtl_WriteDWord((LPBYTE)&cf_hdr[1], 0,
var->u.pclipdata->ulClipFmt);
- hr = IStream_Write(This->stm, &cf_hdr, sizeof(cf_hdr), &count);
+ hr = IStream_Write(This->stm, cf_hdr, sizeof(cf_hdr), &count);
if (FAILED(hr))
goto end;
hr = IStream_Write(This->stm, &var->u.pclipdata->pClipData, len,
&count);
Modified: trunk/reactos/dll/win32/ole32/storage32.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/storage32.…
==============================================================================
--- trunk/reactos/dll/win32/ole32/storage32.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/ole32/storage32.c [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -2100,7 +2100,6 @@
INT typeOfRelation)
{
StgProperty storeProperty;
- HRESULT hr = S_OK;
BOOL res = TRUE;
/*
@@ -2162,12 +2161,12 @@
}
}
- hr = StorageImpl_WriteProperty(
+ res = StorageImpl_WriteProperty(
storage->base.ancestorStorage,
storePropertyIndex,
&storeProperty);
- if(! hr)
+ if(!res)
{
return E_FAIL;
}
@@ -3140,16 +3139,8 @@
/*
* Make the bitwise arithmetic to get the size of the blocks in bytes.
*/
- if ((1 << 2) == 4)
- {
- This->bigBlockSize = 0x000000001 << (DWORD)This->bigBlockSizeBits;
- This->smallBlockSize = 0x000000001 << (DWORD)This->smallBlockSizeBits;
- }
- else
- {
- This->bigBlockSize = 0x000000001 >> (DWORD)This->bigBlockSizeBits;
- This->smallBlockSize = 0x000000001 >> (DWORD)This->smallBlockSizeBits;
- }
+ This->bigBlockSize = 0x000000001 << (DWORD)This->bigBlockSizeBits;
+ This->smallBlockSize = 0x000000001 << (DWORD)This->smallBlockSizeBits;
/*
* Right now, the code is making some assumptions about the size of the
@@ -5736,13 +5727,16 @@
/*
* Interpret the STGM value grfMode
*/
- shareMode = GetShareModeFromSTGM(grfMode);
+ shareMode = FILE_SHARE_READ | FILE_SHARE_WRITE;
accessMode = GetAccessModeFromSTGM(grfMode);
if (grfMode & STGM_DELETEONRELEASE)
fileAttributes = FILE_FLAG_RANDOM_ACCESS | FILE_FLAG_DELETE_ON_CLOSE;
else
fileAttributes = FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS;
+
+ if (STGM_SHARE_MODE(grfMode) && !(grfMode & STGM_SHARE_DENY_NONE))
+ FIXME("Storage share mode not implemented.\n");
if (grfMode & STGM_TRANSACTED)
FIXME("Transacted mode not implemented.\n");
@@ -7237,8 +7231,8 @@
/* Initialize the CompObj structure */
memset(&IStorageCompObj, 0, sizeof(IStorageCompObj));
- memcpy(&(IStorageCompObj.byUnknown1), pCompObjUnknown1,
sizeof(pCompObjUnknown1));
- memcpy(&(IStorageCompObj.byUnknown2), pCompObjUnknown2,
sizeof(pCompObjUnknown2));
+ memcpy(IStorageCompObj.byUnknown1, pCompObjUnknown1, sizeof(pCompObjUnknown1));
+ memcpy(IStorageCompObj.byUnknown2, pCompObjUnknown2, sizeof(pCompObjUnknown2));
/* Create a CompObj stream if it doesn't exist */
Modified: trunk/reactos/dll/win32/ole32/stubmanager.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/stubmanage…
==============================================================================
--- trunk/reactos/dll/win32/ole32/stubmanager.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/ole32/stubmanager.c [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -84,7 +84,7 @@
sm->oxid_info.ipidRemUnknown.Data2 = 0xffff;
sm->oxid_info.ipidRemUnknown.Data3 = 0xffff;
assert(sizeof(sm->oxid_info.ipidRemUnknown.Data4) == sizeof(apt->oxid));
- memcpy(&sm->oxid_info.ipidRemUnknown.Data4, &apt->oxid, sizeof(OXID));
+ memcpy(sm->oxid_info.ipidRemUnknown.Data4, &apt->oxid, sizeof(OXID));
sm->oxid_info.dwAuthnHint = RPC_C_AUTHN_LEVEL_NONE;
sm->oxid_info.psa = NULL /* FIXME */;
Modified: trunk/reactos/dll/win32/ole32/usrmarshal.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ole32/usrmarshal…
==============================================================================
--- trunk/reactos/dll/win32/ole32/usrmarshal.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/ole32/usrmarshal.c [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -1957,3 +1957,802 @@
{
FIXME(":stub\n");
}
+
+/* call_as/local stubs for unknwn.idl */
+
+HRESULT CALLBACK IClassFactory_CreateInstance_Proxy(
+ IClassFactory* This,
+ IUnknown *pUnkOuter,
+ REFIID riid,
+ void **ppvObject)
+{
+ TRACE("(%p, %s, %p)\n", pUnkOuter, debugstr_guid(riid), ppvObject);
+ *ppvObject = NULL;
+ if (pUnkOuter)
+ {
+ ERR("aggregation is not allowed on remote objects\n");
+ return CLASS_E_NOAGGREGATION;
+ }
+ return IClassFactory_RemoteCreateInstance_Proxy(This, riid,
+ (IUnknown **) ppvObject);
+}
+
+HRESULT __RPC_STUB IClassFactory_CreateInstance_Stub(
+ IClassFactory* This,
+ REFIID riid,
+ IUnknown **ppvObject)
+{
+ TRACE("(%s, %p)\n", debugstr_guid(riid), ppvObject);
+ return IClassFactory_CreateInstance(This, NULL, riid, (void **) ppvObject);
+}
+
+HRESULT CALLBACK IClassFactory_LockServer_Proxy(
+ IClassFactory* This,
+ BOOL fLock)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IClassFactory_LockServer_Stub(
+ IClassFactory* This,
+ BOOL fLock)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+/* call_as/local stubs for objidl.idl */
+
+HRESULT CALLBACK IEnumUnknown_Next_Proxy(
+ IEnumUnknown* This,
+ ULONG celt,
+ IUnknown **rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumUnknown_Next_Stub(
+ IEnumUnknown* This,
+ ULONG celt,
+ IUnknown **rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
+ IBindCtx* This,
+ BIND_OPTS *pbindopts)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IBindCtx_SetBindOptions_Stub(
+ IBindCtx* This,
+ BIND_OPTS2 *pbindopts)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IBindCtx_GetBindOptions_Proxy(
+ IBindCtx* This,
+ BIND_OPTS *pbindopts)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IBindCtx_GetBindOptions_Stub(
+ IBindCtx* This,
+ BIND_OPTS2 *pbindopts)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IEnumMoniker_Next_Proxy(
+ IEnumMoniker* This,
+ ULONG celt,
+ IMoniker **rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumMoniker_Next_Stub(
+ IEnumMoniker* This,
+ ULONG celt,
+ IMoniker **rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+BOOL CALLBACK IRunnableObject_IsRunning_Proxy(
+ IRunnableObject* This)
+{
+ BOOL rv;
+ FIXME(":stub\n");
+ memset(&rv, 0, sizeof rv);
+ return rv;
+}
+
+HRESULT __RPC_STUB IRunnableObject_IsRunning_Stub(
+ IRunnableObject* This)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IMoniker_BindToObject_Proxy(
+ IMoniker* This,
+ IBindCtx *pbc,
+ IMoniker *pmkToLeft,
+ REFIID riidResult,
+ void **ppvResult)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IMoniker_BindToObject_Stub(
+ IMoniker* This,
+ IBindCtx *pbc,
+ IMoniker *pmkToLeft,
+ REFIID riidResult,
+ IUnknown **ppvResult)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IMoniker_BindToStorage_Proxy(
+ IMoniker* This,
+ IBindCtx *pbc,
+ IMoniker *pmkToLeft,
+ REFIID riid,
+ void **ppvObj)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IMoniker_BindToStorage_Stub(
+ IMoniker* This,
+ IBindCtx *pbc,
+ IMoniker *pmkToLeft,
+ REFIID riid,
+ IUnknown **ppvObj)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IEnumString_Next_Proxy(
+ IEnumString* This,
+ ULONG celt,
+ LPOLESTR *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumString_Next_Stub(
+ IEnumString* This,
+ ULONG celt,
+ LPOLESTR *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK ISequentialStream_Read_Proxy(
+ ISequentialStream* This,
+ void *pv,
+ ULONG cb,
+ ULONG *pcbRead)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB ISequentialStream_Read_Stub(
+ ISequentialStream* This,
+ byte *pv,
+ ULONG cb,
+ ULONG *pcbRead)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK ISequentialStream_Write_Proxy(
+ ISequentialStream* This,
+ const void *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB ISequentialStream_Write_Stub(
+ ISequentialStream* This,
+ const byte *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IStream_Seek_Proxy(
+ IStream* This,
+ LARGE_INTEGER dlibMove,
+ DWORD dwOrigin,
+ ULARGE_INTEGER *plibNewPosition)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IStream_Seek_Stub(
+ IStream* This,
+ LARGE_INTEGER dlibMove,
+ DWORD dwOrigin,
+ ULARGE_INTEGER *plibNewPosition)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IStream_CopyTo_Proxy(
+ IStream* This,
+ IStream *pstm,
+ ULARGE_INTEGER cb,
+ ULARGE_INTEGER *pcbRead,
+ ULARGE_INTEGER *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IStream_CopyTo_Stub(
+ IStream* This,
+ IStream *pstm,
+ ULARGE_INTEGER cb,
+ ULARGE_INTEGER *pcbRead,
+ ULARGE_INTEGER *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
+ IEnumSTATSTG* This,
+ ULONG celt,
+ STATSTG *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumSTATSTG_Next_Stub(
+ IEnumSTATSTG* This,
+ ULONG celt,
+ STATSTG *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IStorage_OpenStream_Proxy(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ void *reserved1,
+ DWORD grfMode,
+ DWORD reserved2,
+ IStream **ppstm)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IStorage_OpenStream_Stub(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ unsigned long cbReserved1,
+ byte *reserved1,
+ DWORD grfMode,
+ DWORD reserved2,
+ IStream **ppstm)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IStorage_EnumElements_Proxy(
+ IStorage* This,
+ DWORD reserved1,
+ void *reserved2,
+ DWORD reserved3,
+ IEnumSTATSTG **ppenum)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IStorage_EnumElements_Stub(
+ IStorage* This,
+ DWORD reserved1,
+ unsigned long cbReserved2,
+ byte *reserved2,
+ DWORD reserved3,
+ IEnumSTATSTG **ppenum)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ void *pv,
+ ULONG cb,
+ ULONG *pcbRead)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB ILockBytes_ReadAt_Stub(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ byte *pv,
+ ULONG cb,
+ ULONG *pcbRead)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK ILockBytes_WriteAt_Proxy(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const void *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB ILockBytes_WriteAt_Stub(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const byte *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
+ IFillLockBytes* This,
+ const void *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IFillLockBytes_FillAppend_Stub(
+ IFillLockBytes* This,
+ const byte *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IFillLockBytes_FillAt_Proxy(
+ IFillLockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const void *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IFillLockBytes_FillAt_Stub(
+ IFillLockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const byte *pv,
+ ULONG cb,
+ ULONG *pcbWritten)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
+ IEnumFORMATETC* This,
+ ULONG celt,
+ FORMATETC *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumFORMATETC_Next_Stub(
+ IEnumFORMATETC* This,
+ ULONG celt,
+ FORMATETC *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
+ IEnumSTATDATA* This,
+ ULONG celt,
+ STATDATA *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumSTATDATA_Next_Stub(
+ IEnumSTATDATA* This,
+ ULONG celt,
+ STATDATA *rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+void CALLBACK IAdviseSink_OnDataChange_Proxy(
+ IAdviseSink* This,
+ FORMATETC *pFormatetc,
+ STGMEDIUM *pStgmed)
+{
+ FIXME(":stub\n");
+}
+
+HRESULT __RPC_STUB IAdviseSink_OnDataChange_Stub(
+ IAdviseSink* This,
+ FORMATETC *pFormatetc,
+ ASYNC_STGMEDIUM *pStgmed)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+void CALLBACK IAdviseSink_OnViewChange_Proxy(
+ IAdviseSink* This,
+ DWORD dwAspect,
+ LONG lindex)
+{
+ FIXME(":stub\n");
+}
+
+HRESULT __RPC_STUB IAdviseSink_OnViewChange_Stub(
+ IAdviseSink* This,
+ DWORD dwAspect,
+ LONG lindex)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+void CALLBACK IAdviseSink_OnRename_Proxy(
+ IAdviseSink* This,
+ IMoniker *pmk)
+{
+ FIXME(":stub\n");
+}
+
+HRESULT __RPC_STUB IAdviseSink_OnRename_Stub(
+ IAdviseSink* This,
+ IMoniker *pmk)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+void CALLBACK IAdviseSink_OnSave_Proxy(
+ IAdviseSink* This)
+{
+ FIXME(":stub\n");
+}
+
+HRESULT __RPC_STUB IAdviseSink_OnSave_Stub(
+ IAdviseSink* This)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+void CALLBACK IAdviseSink_OnClose_Proxy(
+ IAdviseSink* This)
+{
+ FIXME(":stub\n");
+}
+
+HRESULT __RPC_STUB IAdviseSink_OnClose_Stub(
+ IAdviseSink* This)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+void CALLBACK IAdviseSink2_OnLinkSrcChange_Proxy(
+ IAdviseSink2* This,
+ IMoniker *pmk)
+{
+ FIXME(":stub\n");
+}
+
+HRESULT __RPC_STUB IAdviseSink2_OnLinkSrcChange_Stub(
+ IAdviseSink2* This,
+ IMoniker *pmk)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IDataObject_GetData_Proxy(
+ IDataObject* This,
+ FORMATETC *pformatetcIn,
+ STGMEDIUM *pmedium)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IDataObject_GetData_Stub(
+ IDataObject* This,
+ FORMATETC *pformatetcIn,
+ STGMEDIUM *pRemoteMedium)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IDataObject_GetDataHere_Proxy(
+ IDataObject* This,
+ FORMATETC *pformatetc,
+ STGMEDIUM *pmedium)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IDataObject_GetDataHere_Stub(
+ IDataObject* This,
+ FORMATETC *pformatetc,
+ STGMEDIUM *pRemoteMedium)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IDataObject_SetData_Proxy(
+ IDataObject* This,
+ FORMATETC *pformatetc,
+ STGMEDIUM *pmedium,
+ BOOL fRelease)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IDataObject_SetData_Stub(
+ IDataObject* This,
+ FORMATETC *pformatetc,
+ FLAG_STGMEDIUM *pmedium,
+ BOOL fRelease)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+/* call_as/local stubs for oleidl.idl */
+
+HRESULT CALLBACK IOleInPlaceActiveObject_TranslateAccelerator_Proxy(
+ IOleInPlaceActiveObject* This,
+ LPMSG lpmsg)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IOleInPlaceActiveObject_TranslateAccelerator_Stub(
+ IOleInPlaceActiveObject* This)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IOleInPlaceActiveObject_ResizeBorder_Proxy(
+ IOleInPlaceActiveObject* This,
+ LPCRECT prcBorder,
+ IOleInPlaceUIWindow *pUIWindow,
+ BOOL fFrameWindow)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IOleInPlaceActiveObject_ResizeBorder_Stub(
+ IOleInPlaceActiveObject* This,
+ LPCRECT prcBorder,
+ REFIID riid,
+ IOleInPlaceUIWindow *pUIWindow,
+ BOOL fFrameWindow)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IOleCache2_UpdateCache_Proxy(
+ IOleCache2* This,
+ LPDATAOBJECT pDataObject,
+ DWORD grfUpdf,
+ LPVOID pReserved)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IOleCache2_UpdateCache_Stub(
+ IOleCache2* This,
+ LPDATAOBJECT pDataObject,
+ DWORD grfUpdf,
+ LONG_PTR pReserved)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IEnumOLEVERB_Next_Proxy(
+ IEnumOLEVERB* This,
+ ULONG celt,
+ LPOLEVERB rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IEnumOLEVERB_Next_Stub(
+ IEnumOLEVERB* This,
+ ULONG celt,
+ LPOLEVERB rgelt,
+ ULONG *pceltFetched)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IViewObject_Draw_Proxy(
+ IViewObject* This,
+ DWORD dwDrawAspect,
+ LONG lindex,
+ void *pvAspect,
+ DVTARGETDEVICE *ptd,
+ HDC hdcTargetDev,
+ HDC hdcDraw,
+ LPCRECTL lprcBounds,
+ LPCRECTL lprcWBounds,
+ BOOL (STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR dwContinue),
+ ULONG_PTR dwContinue)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IViewObject_Draw_Stub(
+ IViewObject* This,
+ DWORD dwDrawAspect,
+ LONG lindex,
+ ULONG_PTR pvAspect,
+ DVTARGETDEVICE *ptd,
+ ULONG_PTR hdcTargetDev,
+ ULONG_PTR hdcDraw,
+ LPCRECTL lprcBounds,
+ LPCRECTL lprcWBounds,
+ IContinue *pContinue)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IViewObject_GetColorSet_Proxy(
+ IViewObject* This,
+ DWORD dwDrawAspect,
+ LONG lindex,
+ void *pvAspect,
+ DVTARGETDEVICE *ptd,
+ HDC hicTargetDev,
+ LOGPALETTE **ppColorSet)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IViewObject_GetColorSet_Stub(
+ IViewObject* This,
+ DWORD dwDrawAspect,
+ LONG lindex,
+ ULONG_PTR pvAspect,
+ DVTARGETDEVICE *ptd,
+ ULONG_PTR hicTargetDev,
+ LOGPALETTE **ppColorSet)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IViewObject_Freeze_Proxy(
+ IViewObject* This,
+ DWORD dwDrawAspect,
+ LONG lindex,
+ void *pvAspect,
+ DWORD *pdwFreeze)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IViewObject_Freeze_Stub(
+ IViewObject* This,
+ DWORD dwDrawAspect,
+ LONG lindex,
+ ULONG_PTR pvAspect,
+ DWORD *pdwFreeze)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT CALLBACK IViewObject_GetAdvise_Proxy(
+ IViewObject* This,
+ DWORD *pAspects,
+ DWORD *pAdvf,
+ IAdviseSink **ppAdvSink)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT __RPC_STUB IViewObject_GetAdvise_Stub(
+ IViewObject* This,
+ DWORD *pAspects,
+ DWORD *pAdvf,
+ IAdviseSink **ppAdvSink)
+{
+ FIXME(":stub\n");
+ return E_NOTIMPL;
+}
Modified: trunk/reactos/include/psdk/comcat.idl
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/comcat.idl?re…
==============================================================================
--- trunk/reactos/include/psdk/comcat.idl [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/comcat.idl [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -17,7 +17,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
+#ifndef DO_NO_IMPORTS
import "unknwn.idl";
+#endif
/*****************************************************************************
* Types
Modified: trunk/reactos/include/psdk/dispex.idl
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/dispex.idl?re…
==============================================================================
--- trunk/reactos/include/psdk/dispex.idl [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/dispex.idl [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -16,10 +16,12 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
+#ifndef DO_NO_IMPORTS
import "ocidl.idl";
import "oleidl.idl";
import "oaidl.idl";
import "servprov.idl";
+#endif
cpp_quote("#define fdexNameCaseSensitive 0x00000001L")
cpp_quote("#define fdexNameEnsure 0x00000002L")
@@ -171,6 +173,18 @@
]
interface IObjectIdentity : IUnknown
{
- HRESULT IsEqualObject(
+ HRESULT IsEqualObject(
[in] IUnknown *punk);
}
+
+[
+ object,
+ uuid(c5598e60-b307-11d1-b27d-006008c3fbfb),
+ pointer_default(unique)
+]
+interface ICanHandleException : IUnknown
+{
+ HRESULT CanHandleException(
+ [in] EXCEPINFO *pExcepInfo,
+ [in] VARIANT *pvar);
+}
Modified: trunk/reactos/include/psdk/mlang.idl
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/mlang.idl?rev…
==============================================================================
--- trunk/reactos/include/psdk/mlang.idl [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/mlang.idl [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -16,7 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
+#ifndef DO_NO_IMPORTS
import "unknwn.idl";
+#endif
interface IStream;
@@ -32,19 +34,19 @@
]
interface IMLangCodePages : IUnknown
{
- HRESULT GetCharCodePages(
+ HRESULT GetCharCodePages(
[in] WCHAR chSrc,
DWORD *pdwCodePages);
- HRESULT GetStrCodePages(
+ HRESULT GetStrCodePages(
[in, size_is(cchSrc)] const WCHAR *pszSrc,
[in] long cchSrc,
[in] DWORD dwPriorityCodePages,
[out] DWORD *pdwCodePages,
[out] long *pcchCodePages);
- HRESULT CodePageToCodePages(
+ HRESULT CodePageToCodePages(
[in] UINT uCodePage,
[out] DWORD *pdwCodePages);
- HRESULT CodePagesToCodePage(
+ HRESULT CodePagesToCodePage(
[in] DWORD dwCodePages,
[in] UINT uDefaultCodePage,
[out] UINT *puCodePage);
@@ -62,13 +64,13 @@
[in] HFONT hFont,
[out] DWORD *pdwCodePages );
- HRESULT MapFont(
+ HRESULT MapFont(
[in] HDC hDC,
[in] DWORD dwCodePages,
[in] HFONT hSrcFont,
[out] HFONT *phDestFont);
- HRESULT ReleaseFont(
+ HRESULT ReleaseFont(
[in] HFONT hFont);
HRESULT ResetFontMapping();
@@ -158,18 +160,153 @@
WCHAR wszProportionalFont[MAX_MIMEFACE_NAME];
} SCRIPTINFO, *PSCRIPTINFO;
- HRESULT Clone(
+ HRESULT Clone(
[out] IEnumScript **ppEnum);
- HRESULT Next(
+ HRESULT Next(
[in] ULONG celt,
[out] PSCRIPTINFO rgelt,
[out] ULONG *pceltFetched);
HRESULT Reset();
- HRESULT Skip(
+ HRESULT Skip(
[in] ULONG celt);
+}
+
+[
+ object,
+ uuid(dccfc162-2b38-11d2-b7ec-00c04f8f5d9a),
+ pointer_default(unique)
+]
+interface IMLangFontLink2 : IMLangCodePages
+{
+ typedef struct tagUNICODERANGE
+ {
+ WCHAR wcFrom;
+ WCHAR wcTo;
+ } UNICODERANGE;
+
+ typedef [unique] IMLangFontLink2 *PMLANGFONTLINK2;
+
+ HRESULT GetFontCodePages(
+ [in] HDC hDC,
+ [in] HFONT hFont,
+ [out] DWORD *pdwCodePages );
+
+ HRESULT ReleaseFont(
+ [in] HFONT hFont);
+
+ HRESULT ResetFontMapping();
+
+ HRESULT MapFont(
+ [in] HDC hDC,
+ [in] DWORD dwCodePages,
+ [in] WCHAR chSrc,
+ [out] HFONT *pFont);
+
+ HRESULT GetFontUnicodeRanges(
+ [in] HDC hDC,
+ [in,out] UINT *puiRanges,
+ [out] UNICODERANGE* pUranges);
+
+ HRESULT GetScriptFontInfo(
+ [in] SCRIPT_ID sid,
+ [in] DWORD dwFlags,
+ [in,out] UINT *puiFonts,
+ [out] SCRIPTFONTINFO* pScriptFont);
+
+ HRESULT CodePageToScriptID(
+ [in] UINT uiCodePage,
+ [out] SCRIPT_ID *pSid);
+}
+
+[
+ object,
+ uuid(c04d65ce-b70d-11d0-b188-00aa0038c969),
+ pointer_default(unique)
+]
+interface IMLangString : IUnknown
+{
+#ifdef NEWMLSTR
+ HRESULT LockMLStr(
+ [in] long lPos,
+ [in] DWORD dwFlags,
+ [out] DWORD* pdwCookie,
+ [out] long* plActualPos,
+ [out] long* plActualLen);
+
+ HRESULT UnlockMLStr(
+ [in] DWORD dwCookie);
+#else
+ HRESULT Sync(
+ [in] BOOL fNoAccess);
+#endif
+ HRESULT GetLength(
+ [out, retval] long* plLen);
+ HRESULT SetMLStr(
+ [in] long lDestPos,
+ [in] long lDestLen,
+ [in] IUnknown *pSrcMLStr,
+ [in] long lSrcPos,
+ [in] long lSrcLen);
+#ifdef NEWMLSTR
+ HRESULT RegisterAttr(
+ [in] IUnknown *pUnk,
+ [out] DWORD* pdwCookie);
+ HRESULT UnregisterAttr(
+ [in] DWORD dwCookie);
+ HRESULT EnumAttr(
+ [out] IEnumUnknown **ppEnumUnk);
+ HRESULT FindAttr(
+ [in] REFIID riid,
+ [in] LPARAM lParam,
+ [out] IUnknown **ppUnk);
+#else
+ HRESULT GetMLStr(
+ [in] long lSrcPos,
+ [in] long lSrcLen,
+ [in] IUnknown *pUnkOuter,
+ [in] DWORD dwClsContext,
+ [in] const IID* piid,
+ [out] IUnknown** ppDestMLStr,
+ [out] long* plDestPos,
+ [out] long* plDestLen);
+#endif
+}
+
+[
+ object,
+ uuid(f5be2ee1-bfd7-11d0-b188-00aa0038c969),
+ pointer_default(unique)
+]
+interface IMLangLineBreakConsole : IUnknown
+{
+ HRESULT BreakLineML(
+ [in] IMLangString* pSrcMLStr,
+ [in] long lSrcPos,
+ [in] long lSrcLen,
+ [in] long cMinColumns,
+ [in] long cMaxColumns,
+ [out] long* plLineLen,
+ [out] long* plSkipLen);
+
+ HRESULT BreakLineW(
+ [in] LCID locale,
+ [in, size_is(cchSrc)] const WCHAR* pszSrc,
+ [in] long cchSrc,
+ [in] long cMaxColumns,
+ [out] long* pcchLine,
+ [out] long* pcchSkip );
+
+ HRESULT BreakLineA(
+ [in] LCID locale,
+ [in] UINT uCodePage,
+ [in, size_is(cchSrc)] const CHAR* pszSrc,
+ [in] long cchSrc,
+ [in] long cMaxColumns,
+ [out] long* pcchLine,
+ [out] long* pcchSkip);
}
[
@@ -219,17 +356,17 @@
WCHAR wszCharset[MAX_MIMECSET_NAME];
} MIMECSETINFO, *PMIMECSETINFO;
- HRESULT Clone(
+ HRESULT Clone(
[out] IEnumCodePage **ppEnum);
- HRESULT Next(
+ HRESULT Next(
[in] ULONG celt,
[out] PMIMECPINFO rgelt,
[out] ULONG *pceltFetched);
HRESULT Reset();
- HRESULT Skip(
+ HRESULT Skip(
[in] ULONG celt);
}
@@ -240,33 +377,33 @@
]
interface IMLangConvertCharset : IUnknown
{
- HRESULT Initialize(
+ HRESULT Initialize(
[in] UINT uiSrcCodePage,
[in] UINT uiDstCodePage,
[in] DWORD dwProperty);
- HRESULT GetSourceCodePage(
+ HRESULT GetSourceCodePage(
[out] UINT *puiSrcCodePage);
- HRESULT GetDestinationCodePage(
+ HRESULT GetDestinationCodePage(
[out] UINT *puiDstCodePage);
- HRESULT GetProperty(
+ HRESULT GetProperty(
[out] DWORD *pdwProperty);
- HRESULT DoConversion(
+ HRESULT DoConversion(
[in] BYTE *pSrcStr,
[in,out] UINT *pcSrcSize,
[in] BYTE *pDstStr,
[in,out] UINT *pcDstSize);
- HRESULT DoConversionToUnicode(
+ HRESULT DoConversionToUnicode(
[in] CHAR *pSrcStr,
[in,out] UINT *pcSrcSize,
[in] WCHAR *pDstStr,
[in,out] UINT *pcDstSize);
- HRESULT DoConversionFromUnicode(
+ HRESULT DoConversionFromUnicode(
[in] WCHAR *pSrcStr,
[in,out] UINT *pcSrcSize,
[in] CHAR *pDstStr,
@@ -298,17 +435,17 @@
WCHAR wszLocaleName[MAX_LOCALE_NAME];
} RFC1766INFO, *PRFC1766INFO;
- HRESULT Clone(
+ HRESULT Clone(
[out] IEnumRfc1766 **ppEnum);
- HRESULT Next(
+ HRESULT Next(
[in] ULONG celt,
[out] PRFC1766INFO rgelt,
[out] ULONG *pceltFetched);
HRESULT Reset();
- HRESULT Skip(
+ HRESULT Skip(
[in] ULONG celt);
}
@@ -319,30 +456,30 @@
]
interface IMultiLanguage : IUnknown
{
- HRESULT GetNumberOfCodePageInfo(
+ HRESULT GetNumberOfCodePageInfo(
[out] UINT *pcCodePage);
- HRESULT GetCodePageInfo(
+ HRESULT GetCodePageInfo(
[in] UINT uiCodePage,
[out] PMIMECPINFO pCodePageInfo);
- HRESULT GetFamilyCodePage(
+ HRESULT GetFamilyCodePage(
[in] UINT uiCodePage,
[out] UINT *puiFamilyCodePage);
- HRESULT EnumCodePages(
+ HRESULT EnumCodePages(
[in] DWORD grfFlags,
[out] IEnumCodePage **ppEnumCodePage);
- HRESULT GetCharsetInfo(
+ HRESULT GetCharsetInfo(
[in] BSTR Charset,
[in] PMIMECSETINFO pCharsetInfo);
- HRESULT IsConvertible(
+ HRESULT IsConvertible(
[in] DWORD dwSrcEncoding,
[in] DWORD dwDstEncoding);
- HRESULT ConvertString(
+ HRESULT ConvertString(
[in,out] DWORD *pdwMode,
[in] DWORD dwSrcEncoding,
[in] DWORD dwDstEncoding,
@@ -351,7 +488,7 @@
[in] BYTE *pDstStr,
[in,out] UINT *pcDstSize);
- HRESULT ConvertStringToUnicode(
+ HRESULT ConvertStringToUnicode(
[in,out] DWORD *pdwMode,
[in] DWORD dwEncoding,
[in] CHAR *pSrcStr,
@@ -359,7 +496,7 @@
[in] WCHAR *pDstStr,
[in,out] UINT *pcDstSize);
- HRESULT ConvertStringFromUnicode(
+ HRESULT ConvertStringFromUnicode(
[in,out] DWORD *pdwMode,
[in] DWORD dwEncoding,
[in] WCHAR *pSrcStr,
@@ -369,22 +506,22 @@
HRESULT ConvertStringReset();
- HRESULT GetRfc1766FromLcid(
+ HRESULT GetRfc1766FromLcid(
[in] LCID Locale,
[out] BSTR *pbstrRfc1766);
- HRESULT GetLcidFromRfc1766(
+ HRESULT GetLcidFromRfc1766(
[out] LCID *pLocale,
[in] BSTR bstrRfc1766);
- HRESULT EnumRfc1766(
+ HRESULT EnumRfc1766(
[out] IEnumRfc1766 **ppEnumRfc1766);
- HRESULT GetRfc1766Info(
+ HRESULT GetRfc1766Info(
[in] LCID Locale,
[out] PRFC1766INFO pRfc1766Info);
- HRESULT CreateConvertCharset(
+ HRESULT CreateConvertCharset(
[in] UINT uiSrcCodePage,
[in] UINT uiDstCodePage,
[in] DWORD dwProperty,
@@ -407,32 +544,32 @@
INT nConfidence;
} DetectEncodingInfo, *pDetectEncodingInfo;
- HRESULT GetNumberOfCodePageInfo(
+ HRESULT GetNumberOfCodePageInfo(
[out] UINT *pcCodePage);
- HRESULT GetCodePageInfo(
+ HRESULT GetCodePageInfo(
[in] UINT uiCodePage,
[in] LANGID LangId,
[out] PMIMECPINFO pCodePageInfo);
- HRESULT GetFamilyCodePage(
+ HRESULT GetFamilyCodePage(
[in] UINT uiCodePage,
[out] UINT *puiFamilyCodePage);
- HRESULT EnumCodePages(
+ HRESULT EnumCodePages(
[in] DWORD grfFlags,
[in] LANGID LangId,
[out] IEnumCodePage **ppEnumCodePage);
- HRESULT GetCharsetInfo(
+ HRESULT GetCharsetInfo(
[in] BSTR Charset,
[in] PMIMECSETINFO pCharsetInfo);
- HRESULT IsConvertible(
+ HRESULT IsConvertible(
[in] DWORD dwSrcEncoding,
[in] DWORD dwDstEncoding);
- HRESULT ConvertString(
+ HRESULT ConvertString(
[in,out] DWORD *pdwMode,
[in] DWORD dwSrcEncoding,
[in] DWORD dwDstEncoding,
@@ -441,7 +578,7 @@
[in] BYTE *pDstStr,
[in,out] UINT *pcDstSize);
- HRESULT ConvertStringToUnicode(
+ HRESULT ConvertStringToUnicode(
[in,out] DWORD *pdwMode,
[in] DWORD dwEncoding,
[in] CHAR *pSrcStr,
@@ -449,7 +586,7 @@
[in] WCHAR *pDstStr,
[in,out] UINT *pcDstSize);
- HRESULT ConvertStringFromUnicode(
+ HRESULT ConvertStringFromUnicode(
[in,out] DWORD *pdwMode,
[in] DWORD dwEncoding,
[in] WCHAR *pSrcStr,
@@ -459,30 +596,30 @@
HRESULT ConvertStringReset();
- HRESULT GetRfc1766FromLcid(
+ HRESULT GetRfc1766FromLcid(
[in] LCID Locale,
[out] BSTR *pbstrRfc1766);
- HRESULT GetLcidFromRfc1766(
+ HRESULT GetLcidFromRfc1766(
[out] LCID *pLocale,
[in] BSTR bstrRfc1766);
- HRESULT EnumRfc1766(
+ HRESULT EnumRfc1766(
[in] LANGID LangId,
[out] IEnumRfc1766 **ppEnumRfc1766);
- HRESULT GetRfc1766Info(
+ HRESULT GetRfc1766Info(
[in] LCID Locale,
[in] LANGID LangId,
[out] PRFC1766INFO pRfc1766Info);
- HRESULT CreateConvertCharset(
+ HRESULT CreateConvertCharset(
[in] UINT uiSrcCodePage,
[in] UINT uiDstCodePage,
[in] DWORD dwProperty,
[out] IMLangConvertCharset **ppMLangConvertCharset);
- HRESULT ConvertStringInIStream(
+ HRESULT ConvertStringInIStream(
[in,out] DWORD *pdwMode,
[in] DWORD dwFlag,
[in] WCHAR *lpFallBack,
@@ -491,7 +628,7 @@
[in] IStream *pstmIn,
[in] IStream *pstmOut);
- HRESULT ConvertStringToUnicodeEx(
+ HRESULT ConvertStringToUnicodeEx(
[in,out] DWORD *pdwMode,
[in] DWORD dwEncoding,
[in] CHAR *pSrcStr,
@@ -511,14 +648,14 @@
[in] DWORD dwFlag,
[in] WCHAR *lpFallBack);
- HRESULT DetectCodepageInIStream(
+ HRESULT DetectCodepageInIStream(
[in] DWORD dwFlag,
[in] DWORD dwPrefWinCodePage,
[in] IStream *pstmIn,
[in,out] DetectEncodingInfo *lpEncoding,
[in,out] INT *pnScores);
- HRESULT DetectInputCodepage(
+ HRESULT DetectInputCodepage(
[in] DWORD dwFlag,
[in] DWORD dwPrefWinCodePage,
[in] CHAR *pSrcStr,
@@ -530,7 +667,7 @@
[in] UINT uiCodePage,
[in] HWND hwnd);
- HRESULT GetCodePageDescription(
+ HRESULT GetCodePageDescription(
[in] UINT uiCodePage,
[in] LCID lcid,
[in,out] LPWSTR lpWideCharStr,
@@ -539,13 +676,13 @@
HRESULT IsCodePageInstallable(
[in] UINT uiCodePage);
- HRESULT SetMimeDBSource(
+ HRESULT SetMimeDBSource(
[in] MIMECONTF dwSource);
- HRESULT GetNumberOfScripts(
+ HRESULT GetNumberOfScripts(
[out] UINT *pnScripts);
- HRESULT EnumScripts(
+ HRESULT EnumScripts(
[in] DWORD dwFlags,
[in] LANGID LangId,
[out] IEnumScript **ppEnumScript);
@@ -593,6 +730,7 @@
interface IMLangCodePages;
interface IMLangFontLink;
/* interface IMLangLineBreakConsole; */
+ interface IMLangFontLink2;
}
cpp_quote("STDAPI LcidToRfc1766A(LCID, LPSTR, INT);")
Modified: trunk/reactos/include/psdk/objsafe.idl
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/objsafe.idl?r…
==============================================================================
--- trunk/reactos/include/psdk/objsafe.idl [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/objsafe.idl [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -16,7 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
+#ifndef DO_NO_IMPORTS
import "unknwn.idl";
+#endif
cpp_quote("#define INTERFACESAFE_FOR_UNTRUSTED_CALLER 1")
cpp_quote("#define INTERFACESAFE_FOR_UNTRUSTED_DATA 2")
Modified: trunk/reactos/include/psdk/rpc.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/rpc.h?rev=361…
==============================================================================
--- trunk/reactos/include/psdk/rpc.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/rpc.h [iso-8859-1] Sat Sep 13 13:49:51 2008
@@ -1,6 +1,14 @@
#if !defined( RPC_NO_WINDOWS_H ) && !defined( MAC ) && !defined( _MAC )
-#include <windows.h>
+# ifdef __WINESRC__
+# ifndef RC_INVOKED
+# include <stdarg.h>
+# endif
+# include <windef.h>
+# include <winbase.h>
+# else
+# include <windows.h>
+# endif
#endif
#ifdef __GNUC__