Commit 9a580d9a authored by Ove Kaaven's avatar Ove Kaaven Committed by Alexandre Julliard

Wrote a new objidl.idl to replace a number of include/wine/obj_*.h

files.
parent 55b2bf1d
......@@ -5,6 +5,7 @@ VPATH = @srcdir@
MODULE = none
IDL_SRCS = \
objidl.idl \
unknwn.idl \
wtypes.idl
......@@ -89,7 +90,6 @@ WINDOWS_INCLUDES = \
ntstatus.h \
oaidl.h \
objbase.h \
objidl.h \
ocidl.h \
ole2.h \
ole2ver.h \
......@@ -205,14 +205,11 @@ WINE_INCLUDES = \
library.h \
obj_base.h \
obj_cache.h \
obj_channel.h \
obj_clientserver.h \
obj_comcat.h \
obj_commdlgbrowser.h \
obj_connection.h \
obj_contextmenu.h \
obj_control.h \
obj_dataobject.h \
obj_dockingwindowframe.h \
obj_dragdrop.h \
obj_dragdrophelper.h \
......@@ -221,9 +218,6 @@ WINE_INCLUDES = \
obj_errorinfo.h \
obj_extracticon.h \
obj_inplace.h \
obj_marshal.h \
obj_misc.h \
obj_moniker.h \
obj_oleaut.h \
obj_olefont.h \
obj_oleobj.h \
......@@ -231,14 +225,12 @@ WINE_INCLUDES = \
obj_oleview.h \
obj_picture.h \
obj_property.h \
obj_propertystorage.h \
obj_serviceprovider.h \
obj_shellbrowser.h \
obj_shellextinit.h \
obj_shellfolder.h \
obj_shelllink.h \
obj_shellview.h \
obj_storage.h \
obj_webbrowser.h \
unicode.h
......
This source diff could not be displayed because it is too large. You can view the blob instead.
/*
* Defines undocumented Microsoft COM interfaces and APIs seemingly
* related to some 'channel' notion.
*
* Copyright (C) 1999 Francois Gouget
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_WINE_OBJ_CHANNEL_H
#define __WINE_WINE_OBJ_CHANNEL_H
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
/*****************************************************************************
* Predeclare the interfaces
*/
DEFINE_GUID (IID_IChannelHook, 0x1008c4a0L, 0x7613, 0x11cf, 0x9a, 0xf1, 0x00, 0x20, 0xaf, 0x6e, 0x72, 0xf4);
typedef struct IChannelHook IChannelHook,*LPCHANNELHOOK;
DEFINE_GUID (IID_IPSFactoryBuffer, 0xd5f569d0L, 0x593b, 0x101a, 0xb5, 0x69, 0x08, 0x00, 0x2b, 0x2d, 0xbf, 0x7a);
typedef struct IPSFactoryBuffer IPSFactoryBuffer,*LPPSFACTORYBUFFER;
DEFINE_GUID (IID_IRpcChannelBuffer, 0xd5f56b60L, 0x593b, 0x101a, 0xb5, 0x69, 0x08, 0x00, 0x2b, 0x2d, 0xbf, 0x7a);
typedef struct IRpcChannelBuffer IRpcChannelBuffer,*LPRPCCHANNELBUFFER;
DEFINE_GUID (IID_IRpcProxyBuffer, 0xd5f56a34L, 0x593b, 0x101a, 0xb5, 0x69, 0x08, 0x00, 0x2b, 0x2d, 0xbf, 0x7a);
typedef struct IRpcProxyBuffer IRpcProxyBuffer,*LPRPCPROXYBUFFER;
DEFINE_GUID (IID_IRpcStubBuffer, 0xd5f56afcL, 0x593b, 0x101a, 0xb5, 0x69, 0x08, 0x00, 0x2b, 0x2d, 0xbf, 0x7a);
typedef struct IRpcStubBuffer IRpcStubBuffer,*LPRPCSTUBBUFFER;
DEFINE_GUID (CLSID_PSFactoryBuffer, 0x00000320L, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46);
/*****************************************************************************
* IChannelHook interface
*/
#define ICOM_INTERFACE IChannelHook
#define IChannelHook_METHODS \
ICOM_VMETHOD3(ClientGetSize, REFGUID,uExtent, REFIID,riid, ULONG*,pDataSize) \
ICOM_VMETHOD4(ClientFillBuffer, REFGUID,uExtent, REFIID,riid, ULONG*,pDataSize, void*,pDataBuffer) \
ICOM_VMETHOD6(ClientNotify, REFGUID,uExtent, REFIID,riid, ULONG,cbDataSize, void*,pDataBuffer, DWORD,lDataRep, HRESULT,hrFault) \
ICOM_VMETHOD5(ServerNotify, REFGUID,uExtent, REFIID,riid, ULONG,cbDataSize, void*,pDataBuffer, DWORD,lDataRep) \
ICOM_VMETHOD4(ServerGetSize, REFGUID,uExtent, REFIID,riid, HRESULT,hrFault, ULONG*,pDataSize) \
ICOM_VMETHOD5(ServerFillBuffer, REFGUID,uExtent, REFIID,riid, ULONG*,pDataSize, void*,pDataBuffer, HRESULT,hrFault)
#define IChannelHook_IMETHODS \
IUnknown_IMETHODS \
IChannelHook_METHODS
ICOM_DEFINE(IChannelHook,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IChannelHook_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IChannelHook_AddRef(p) ICOM_CALL (AddRef,p)
#define IChannelHook_Release(p) ICOM_CALL (Release,p)
/*** IChannelHook methods ***/
#define IChannelHook_ClientGetSize(p,a,b,c) ICOM_CALL(ClientGetSize,p,a,b,c)
#define IChannelHook_ClientFillBuffer(p,a,b,c,d) ICOM_CALL(ClientFillBuffer,p,a,b,c,d)
#define IChannelHook_ClientNotify(p,a,b,c,d,e,f) ICOM_CALL(ClientNotify,p,a,b,c,d,e,f)
#define IChannelHook_ServerNotify(p,a,b,c,d,e) ICOM_CALL(ServerNotify,p,a,b,c,d,e)
#define IChannelHook_ServerGetSize(p,a,b,c,d) ICOM_CALL(ServerGetSize,p,a,b,c,d)
#define IChannelHook_ServerFillBuffer(p,a,b,c,d,e) ICOM_CALL(ServerFillBuffer,p,a,b,c,d,e)
/*****************************************************************************
* IPSFactoryBuffer interface
*/
#define ICOM_INTERFACE IPSFactoryBuffer
#define IPSFactoryBuffer_METHODS \
ICOM_METHOD4(HRESULT,CreateProxy, IUnknown*,pUnkOuter, REFIID,riid, IRpcProxyBuffer**,ppProxy, void**,ppv) \
ICOM_METHOD3(HRESULT,CreateStub, REFIID,riid, IUnknown*,pUnkServer, IRpcStubBuffer**,ppStub)
#define IPSFactoryBuffer_IMETHODS \
IUnknown_IMETHODS \
IPSFactoryBuffer_METHODS
ICOM_DEFINE(IPSFactoryBuffer,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IPSFactoryBuffer_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IPSFactoryBuffer_AddRef(p) ICOM_CALL (AddRef,p)
#define IPSFactoryBuffer_Release(p) ICOM_CALL (Release,p)
/*** IPSFactoryBuffer methods ***/
#define IPSFactoryBuffer_CreateProxy(p,a,b,c,d) ICOM_CALL4(CreateProxy,p,a,b,c,d)
#define IPSFactoryBuffer_CreateStub(p,a,b,c) ICOM_CALL3(CreateStub,p,a,b,c)
/*****************************************************************************
* IRpcChannelBuffer interface
*/
typedef unsigned long RPCOLEDATAREP;
typedef struct tagRPCOLEMESSAGE
{
void* reserved1;
RPCOLEDATAREP dataRepresentation;
void* Buffer;
ULONG cbBuffer;
ULONG iMethod;
void* reserved2[5];
ULONG rpcFlags;
} RPCOLEMESSAGE, *PRPCOLEMESSAGE;
#define ICOM_INTERFACE IRpcChannelBuffer
#define IRpcChannelBuffer_METHODS \
ICOM_METHOD2(HRESULT,GetBuffer, RPCOLEMESSAGE*,pMessage, REFIID,riid) \
ICOM_METHOD2(HRESULT,SendReceive, RPCOLEMESSAGE*,pMessage, ULONG*,pStatus) \
ICOM_METHOD1(HRESULT,FreeBuffer, RPCOLEMESSAGE*,pMessage) \
ICOM_METHOD2(HRESULT,GetDestCtx, DWORD*,pdwDestContext, void**,ppvDestContext) \
ICOM_METHOD (HRESULT,IsConnected)
#define IRpcChannelBuffer_IMETHODS \
IUnknown_IMETHODS \
IRpcChannelBuffer_METHODS
ICOM_DEFINE(IRpcChannelBuffer,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IRpcChannelBuffer_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IRpcChannelBuffer_AddRef(p) ICOM_CALL (AddRef,p)
#define IRpcChannelBuffer_Release(p) ICOM_CALL (Release,p)
/*** IRpcChannelBuffer methods ***/
#define IRpcChannelBuffer_GetBuffer(p,a,b) ICOM_CALL2(GetBuffer,p,a,b)
#define IRpcChannelBuffer_SendReceive(p,a,b) ICOM_CALL2(SendReceive,p,a,b)
#define IRpcChannelBuffer_FreeBuffer(p,a) ICOM_CALL1(FreeBuffer,p,a)
#define IRpcChannelBuffer_GetDestCtx(p,a,b) ICOM_CALL2(GetDestCtx,p,a,b)
#define IRpcChannelBuffer_IsConnected(p) ICOM_CALL (IsConnected,p)
/*****************************************************************************
* IRpcProxyBuffer interface
*/
#define ICOM_INTERFACE IRpcProxyBuffer
#define IRpcProxyBuffer_METHODS \
ICOM_METHOD1(HRESULT,Connect, IRpcChannelBuffer*,pRpcChannelBuffer) \
ICOM_VMETHOD( Disconnect)
#define IRpcProxyBuffer_IMETHODS \
IUnknown_IMETHODS \
IRpcProxyBuffer_METHODS
ICOM_DEFINE(IRpcProxyBuffer,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IRpcProxyBuffer_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IRpcProxyBuffer_AddRef(p) ICOM_CALL (AddRef,p)
#define IRpcProxyBuffer_Release(p) ICOM_CALL (Release,p)
/*** IRpcProxyBuffer methods ***/
#define IRpcProxyBuffer_Connect(p,a) ICOM_CALL1(Connect,p,a)
#define IRpcProxyBuffer_Disconnect(p) ICOM_CALL (Disconnect,p)
/*****************************************************************************
* IRpcStubBuffer interface
*/
#define ICOM_INTERFACE IRpcStubBuffer
#define IRpcStubBuffer_METHODS \
ICOM_METHOD1 (HRESULT, Connect, IUnknown*,pUnkServer) \
ICOM_VMETHOD ( Disconnect) \
ICOM_METHOD2 (HRESULT, Invoke, RPCOLEMESSAGE*,_prpcmsg, IRpcChannelBuffer*,_pRpcChannelBuffer) \
ICOM_METHOD1 (LPRPCSTUBBUFFER,IsIIDSupported, REFIID,riid) \
ICOM_METHOD (ULONG, CountRefs) \
ICOM_METHOD1 (HRESULT, DebugServerQueryInterface, void**,ppv) \
ICOM_VMETHOD1( DebugServerRelease, void*,pv)
#define IRpcStubBuffer_IMETHODS \
IUnknown_IMETHODS \
IRpcStubBuffer_METHODS
ICOM_DEFINE(IRpcStubBuffer,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IRpcStubBuffer_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IRpcStubBuffer_AddRef(p) ICOM_CALL (AddRef,p)
#define IRpcStubBuffer_Release(p) ICOM_CALL (Release,p)
/*** IRpcStubBuffer methods ***/
#define IRpcStubBuffer_Connect(p,a) ICOM_CALL1(Connect,p,a)
#define IRpcStubBuffer_Disconnect(p) ICOM_CALL (Disconnect,p)
#define IRpcStubBuffer_Invoke(p,a,b) ICOM_CALL2(Invoke,p,a,b)
#define IRpcStubBuffer_IsIIDSupported(p,a) ICOM_CALL1(IsIIDSupported,p,a)
#define IRpcStubBuffer_CountRefs(p) ICOM_CALL (CountRefs,p)
#define IRpcStubBuffer_DebugServerQueryInterface(p,a) ICOM_CALL1(DebugServerQueryInterface,p,a)
#define IRpcStubBuffer_DebugServerRelease(p,a) ICOM_CALL1(DebugServerRelease,p,a)
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif /* __WINE_WINE_OBJ_CHANNEL_H */
/*
* Defines the COM interfaces and APIs related to client/server aspects.
*
* Copyright (C) the Wine project
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_WINE_OBJ_CLIENTSERVER_H
#define __WINE_WINE_OBJ_CLIENTSERVER_H
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
/*****************************************************************************
* Predeclare the interfaces
*/
DEFINE_OLEGUID(IID_IClientSecurity, 0x0000013dL, 0, 0);
typedef struct IClientSecurity IClientSecurity,*LPCLIENTSECURITY;
DEFINE_OLEGUID(IID_IExternalConnection, 0x00000019L, 0, 0);
typedef struct IExternalConnection IExternalConnection,*LPEXTERNALCONNECTION;
DEFINE_OLEGUID(IID_IMessageFilter, 0x00000016L, 0, 0);
typedef struct IMessageFilter IMessageFilter,*LPMESSAGEFILTER;
DEFINE_OLEGUID(IID_IServerSecurity, 0x0000013eL, 0, 0);
typedef struct IServerSecurity IServerSecurity,*LPSERVERSECURITY;
/*****************************************************************************
* IClientSecurity interface
*/
typedef struct tagSOLE_AUTHENTICATION_SERVICE
{
DWORD dwAuthnSvc;
DWORD dwAuthzSvc;
OLECHAR* pPrincipalName;
HRESULT hr;
} SOLE_AUTHENTICATION_SERVICE, *PSOLE_AUTHENTICATION_SERVICE;
typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES
{
EOAC_NONE = 0x0,
EOAC_MUTUAL_AUTH = 0x1,
EOAC_SECURE_REFS = 0x2,
EOAC_ACCESS_CONTROL = 0x4
} EOLE_AUTHENTICATION_CAPABILITIES;
#define ICOM_INTERFACE IClientSecurity
#define IClientSecurity_METHODS \
ICOM_METHOD8(HRESULT,QueryBlanket, IUnknown*,pProxy, DWORD*,pAuthnSvc, DWORD*,pAuthzSvc, OLECHAR**,pServerPrincName, DWORD*,pAuthnLevel, DWORD*,pImpLevel, void**,pAuthInfo, DWORD*,pCapabilites) \
ICOM_METHOD8(HRESULT,SetBlanket, IUnknown*,pProxy, DWORD,pAuthnSvc, DWORD,pAuthzSvc, OLECHAR*,pServerPrincName, DWORD,pAuthnLevel, DWORD,pImpLevel, void*,pAuthInfo, DWORD,pCapabilites) \
ICOM_METHOD2(HRESULT,CopyProxy, IUnknown*,pProxy, IUnknown**,ppCopy)
#define IClientSecurity_IMETHODS \
IUnknown_IMETHODS \
IClientSecurity_METHODS
ICOM_DEFINE(IClientSecurity,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IClientSecurity_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IClientSecurity_AddRef(p) ICOM_CALL (AddRef,p)
#define IClientSecurity_Release(p) ICOM_CALL (Release,p)
/*** IClientSecurity methods ***/
#define IClientSecurity_QueryBlanket(p,a,b,c,d,e,f,g,h) ICOM_CALL8(QueryBlanket,p,a,b,c,d,e,f,g,h)
#define IClientSecurity_SetBlanket(p,a,b,c,d,e,f,g,h) ICOM_CALL8(SetBlanket,p,a,b,c,d,e,f,g,h)
#define IClientSecurity_CopyProxy(p,a,b) ICOM_CALL2(CopyProxy,p,a,b)
/*****************************************************************************
* IExternalConnection interface
*/
typedef enum tagEXTCONN
{
EXTCONN_STRONG = 0x1,
EXTCONN_WEAK = 0x2,
EXTCONN_CALLABLE = 0x4
} EXTCONN;
#define ICOM_INTERFACE IExternalConnection
#define IExternalConnection_METHODS \
ICOM_METHOD2(DWORD,AddConnection, DWORD,extconn, DWORD,reserved) \
ICOM_METHOD3(DWORD,ReleaseConnection, DWORD,extconn, DWORD,reserved, BOOL,fLastReleaseCloses)
#define IExternalConnection_IMETHODS \
IUnknown_IMETHODS \
IExternalConnection_METHODS
ICOM_DEFINE(IExternalConnection,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IExternalConnection_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IExternalConnection_AddRef(p) ICOM_CALL (AddRef,p)
#define IExternalConnection_Release(p) ICOM_CALL (Release,p)
/*** IExternalConnection methods ***/
#define IExternalConnection_AddConnection(p,a,b) ICOM_CALL8(AddConnection,p,a,b)
#define IExternalConnection_ReleaseConnection(p,a,b,c) ICOM_CALL8(ReleaseConnection,p,a,b,c)
HRESULT WINAPI CoDisconnectObject(LPUNKNOWN lpUnk, DWORD reserved);
/*****************************************************************************
* IMessageFilter interface
*/
typedef enum tagCALLTYPE
{
CALLTYPE_TOPLEVEL = 1,
CALLTYPE_NESTED = 2,
CALLTYPE_ASYNC = 3,
CALLTYPE_TOPLEVEL_CALLPENDING = 4,
CALLTYPE_ASYNC_CALLPENDING = 5
} CALLTYPE;
typedef enum tagSERVERCALL
{
SERVERCALL_ISHANDLED = 0,
SERVERCALL_REJECTED = 1,
SERVERCALL_RETRYLATER = 2
} SERVERCALL;
typedef enum tagPENDINGTYPE
{
PENDINGTYPE_TOPLEVEL = 1,
PENDINGTYPE_NESTED = 2
} PENDINGTYPE;
typedef enum tagPENDINGMSG
{
PENDINGMSG_CANCELCALL = 0,
PENDINGMSG_WAITNOPROCESS = 1,
PENDINGMSG_WAITDEFPROCESS = 2
} PENDINGMSG;
typedef struct tagINTERFACEINFO
{
IUnknown* pUnk;
IID iid;
WORD wMethod;
} INTERFACEINFO,*LPINTERFACEINFO;
#define ICOM_INTERFACE IMessageFilter
#define IMessageFilter_METHODS \
ICOM_METHOD4(DWORD,HandleInComingCall, DWORD,dwCallType, HTASK,htaskCaller, DWORD,dwTickCount, LPINTERFACEINFO,lpInterfaceInfo) \
ICOM_METHOD3(DWORD,RetryRejectedCall, HTASK,htaskCallee, DWORD,dwTickCount, DWORD,dwRejectType) \
ICOM_METHOD3(DWORD,MessagePending, HTASK,htaskCallee, DWORD,dwTickCount, DWORD,dwRejectType)
#define IMessageFilter_IMETHODS \
IUnknown_IMETHODS \
IMessageFilter_METHODS
ICOM_DEFINE(IMessageFilter,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IMessageFilter_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IMessageFilter_AddRef(p) ICOM_CALL (AddRef,p)
#define IMessageFilter_Release(p) ICOM_CALL (Release,p)
/*** IMessageFilter methods ***/
#define IMessageFilter_HandleInComingCall(p,a,b,c,d) ICOM_CALL4(HandleInComingCall,p,a,b,c,d)
#define IMessageFilter_RetryRejectedCall(p,a,b,c) ICOM_CALL3(RetryRejectedCall,p,a,b,c)
#define IMessageFilter_MessagePending(p,a,b,c) ICOM_CALL3(MessagePending,p,a,b,c)
HRESULT WINAPI CoRegisterMessageFilter16(LPMESSAGEFILTER lpMessageFilter,LPMESSAGEFILTER *lplpMessageFilter);
HRESULT WINAPI CoRegisterMessageFilter(LPMESSAGEFILTER lpMessageFilter,LPMESSAGEFILTER *lplpMessageFilter);
/*****************************************************************************
* IServerSecurity interface
*/
#define ICOM_INTERFACE IServerSecurity
#define IServerSecurity_METHODS \
ICOM_METHOD7(HRESULT,QueryBlanket, DWORD*,pAuthnSvc, DWORD*,pAuthzSvc, OLECHAR**,pServerPrincName, DWORD*,pAuthnLevel, DWORD*,pImpLevel, void**,pPrivs, DWORD*,pCapabilities) \
ICOM_METHOD (HRESULT,ImpersonateClient) \
ICOM_METHOD (HRESULT,RevertToSelf) \
ICOM_METHOD (BOOL, IsImpersonating)
#define IServerSecurity_IMETHODS \
IUnknown_IMETHODS \
IServerSecurity_METHODS
ICOM_DEFINE(IServerSecurity,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IServerSecurity_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IServerSecurity_AddRef(p) ICOM_CALL (AddRef,p)
#define IServerSecurity_Release(p) ICOM_CALL (Release,p)
/*** IServerSecurity methods ***/
#define IServerSecurity_QueryBlanket(p,a,b,c,d,e,f,g) ICOM_CALL7(QueryBlanket,p,a,b,c,d,e,f,g)
#define IServerSecurity_ImpersonateClient(p) ICOM_CALL (ImpersonateClient,p)
#define IServerSecurity_RevertToSelf(p) ICOM_CALL (RevertToSelf,p)
#define IServerSecurity_IsImpersonating(p) ICOM_CALL (IsImpersonating,p)
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif /* __WINE_WINE_OBJ_CLIENTSERVER_H */
/*
* Defines the COM interfaces and APIs that allow an interface to
* specify a custom marshaling for its objects.
*
* Copyright (C) 1999 Francois Gouget
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_WINE_OBJ_MARSHAL_H
#define __WINE_WINE_OBJ_MARSHAL_H
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
/*****************************************************************************
* Predeclare the interfaces
*/
DEFINE_OLEGUID(IID_IMarshal, 0x00000003L, 0, 0);
typedef struct IMarshal IMarshal,*LPMARSHAL;
DEFINE_OLEGUID(IID_IStdMarshalInfo, 0x00000018L, 0, 0);
typedef struct IStdMarshalInfo IStdMarshalInfo,*LPSTDMARSHALINFO;
DEFINE_OLEGUID(CLSID_DfMarshal, 0x0000030BL, 0, 0);
/*****************************************************************************
* IMarshal interface
*/
#define ICOM_INTERFACE IMarshal
#define IMarshal_METHODS \
ICOM_METHOD6(HRESULT,GetUnmarshalClass, REFIID,riid, void*,pv, DWORD,dwDestContext, void*,pvDestContext, DWORD,mshlflags, CLSID*,pCid) \
ICOM_METHOD6(HRESULT,GetMarshalSizeMax, REFIID,riid, void*,pv, DWORD,dwDestContext, void*,pvDestContext, DWORD,mshlflags, DWORD*,pSize) \
ICOM_METHOD6(HRESULT,MarshalInterface, IStream*,pStm, REFIID,riid, void*,pv, DWORD,dwDestContext, void*,pvDestContext, DWORD,mshlflags) \
ICOM_METHOD3(HRESULT,UnmarshalInterface, IStream*,pStm, REFIID,riid, void**,ppv) \
ICOM_METHOD1(HRESULT,ReleaseMarshalData, IStream*,pStm) \
ICOM_METHOD1(HRESULT,DisconnectObject, DWORD,dwReserved)
#define IMarshal_IMETHODS \
IUnknown_IMETHODS \
IMarshal_METHODS
ICOM_DEFINE(IMarshal,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IMarshal_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IMarshal_AddRef(p) ICOM_CALL (AddRef,p)
#define IMarshal_Release(p) ICOM_CALL (Release,p)
/*** IMarshal methods ***/
#define IMarshal_GetUnmarshalClass(p,a,b,c,d,e,f) ICOM_CALL6(GetUnmarshalClass,p,a,b,c,d,e,f)
#define IMarshal_GetMarshalSizeMax(p,a,b,c,d,e,f) ICOM_CALL6(GetMarshalSizeMax,p,a,b,c,d,e,f)
#define IMarshal_MarshalInterface(p,a,b,c,d,e,f) ICOM_CALL6(MarshalInterface,p,a,b,c,d,e,f)
#define IMarshal_UnmarshalInterface(p,a,b,c) ICOM_CALL3(UnmarshalInterface,p,a,b,c)
#define IMarshal_ReleaseMarshalData(p,a) ICOM_CALL1(ReleaseMarshalData,p,a)
#define IMarshal_DisconnectObject(p,a) ICOM_CALL1(DisconnectObject,p,a)
/*****************************************************************************
* IStdMarshalInfo interface
*/
#define ICOM_INTERFACE IStdMarshalInfo
#define IStdMarshalInfo_METHODS \
ICOM_METHOD3(HRESULT,GetClassForHandler, DWORD,dwDestContext, void*,pvDestContext, CLSID*,pClsid)
#define IStdMarshalInfo_IMETHODS \
IUnknown_IMETHODS \
IStdMarshalInfo_METHODS
ICOM_DEFINE(IStdMarshalInfo,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IStdMarshalInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IStdMarshalInfo_AddRef(p) ICOM_CALL (AddRef,p)
#define IStdMarshalInfo_Release(p) ICOM_CALL (Release,p)
/*** IStdMarshalInfo methods ***/
#define IStdMarshalInfo_GetClassForHandler(p,a,b,c) ICOM_CALL3(GetClassForHandler,p,a,b,c)
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif /* __WINE_WINE_OBJ_MARSHAL_H */
/*
* Defines miscellaneous COM interfaces and APIs defined in objidl.h.
* These did not really fit into the other categories, whould have
* required their own specific category or are too rarely used to be
* put in 'obj_base.h'.
*
* Copyright (C) the Wine project
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_WINE_OBJ_MISC_H
#define __WINE_WINE_OBJ_MISC_H
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
/*****************************************************************************
* Predeclare the interfaces
*/
DEFINE_OLEGUID(IID_IEnumString, 0x00000101L, 0, 0);
typedef struct IEnumString IEnumString,*LPENUMSTRING;
DEFINE_OLEGUID(IID_IEnumUnknown, 0x00000100L, 0, 0);
typedef struct IEnumUnknown IEnumUnknown,*LPENUMUNKNOWN;
DEFINE_OLEGUID(IID_IMalloc, 0x00000002L, 0, 0);
typedef struct IMalloc IMalloc,*LPMALLOC;
DEFINE_OLEGUID(IID_IMallocSpy, 0x0000001dL, 0, 0);
typedef struct IMallocSpy IMallocSpy,*LPMALLOCSPY;
DEFINE_OLEGUID(IID_IMultiQI, 0x00000020L, 0, 0);
typedef struct IMultiQI IMultiQI,*LPMULTIQI;
/*****************************************************************************
* IEnumString interface
*/
#define ICOM_INTERFACE IEnumString
#define IEnumString_METHODS \
ICOM_METHOD3(HRESULT,Next, ULONG,celt, LPOLESTR*,rgelt, ULONG*,pceltFethed) \
ICOM_METHOD1(HRESULT,Skip, ULONG,celt) \
ICOM_METHOD (HRESULT,Reset) \
ICOM_METHOD1(HRESULT, Clone, IEnumString**, ppenum)
#define IEnumString_IMETHODS \
IUnknown_IMETHODS \
IEnumString_METHODS
ICOM_DEFINE(IEnumString,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IEnumString_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IEnumString_AddRef(p) ICOM_CALL (AddRef,p)
#define IEnumString_Release(p) ICOM_CALL (Release,p)
/*** IEnumString 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) ICOM_CALL (Reset,p)
#define IEnumString_Clone(p,a) ICOM_CALL1(Clone,p,a)
/*****************************************************************************
* IEnumUnknown interface
*/
#define ICOM_INTERFACE IEnumUnknown
#define IEnumUnknown_METHODS \
ICOM_METHOD3(HRESULT,Next, ULONG,celt, IUnknown**,rgelt, ULONG*,pceltFethed) \
ICOM_METHOD1(HRESULT,Skip, ULONG,celt) \
ICOM_METHOD (HRESULT,Reset) \
ICOM_METHOD1(HRESULT,Clone, IEnumUnknown**,ppenum)
#define IEnumUnknown_IMETHODS \
IUnknown_IMETHODS \
IEnumUnknown_METHODS
ICOM_DEFINE(IEnumUnknown,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IEnumUnknown_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IEnumUnknown_AddRef(p) ICOM_CALL (AddRef,p)
#define IEnumUnknown_Release(p) ICOM_CALL (Release,p)
/*** IEnumUnknown methods ***/
#define IEnumUnknown_Next(p,a,b,c) ICOM_CALL3(Next,p,a,b,c)
#define IEnumUnknown_Skip(p,a) ICOM_CALL1(Skip,p,a)
#define IEnumUnknown_Reset(p) ICOM_CALL (Reset,p)
#define IEnumUnknown_Clone(p,a) ICOM_CALL1(Clone,p,a)
/*****************************************************************************
* IMalloc interface
*/
#define ICOM_INTERFACE IMalloc
#define IMalloc_METHODS \
ICOM_METHOD1 (LPVOID,Alloc, DWORD,cb) \
ICOM_METHOD2 (LPVOID,Realloc, LPVOID,pv, DWORD,cb) \
ICOM_VMETHOD1( Free, LPVOID,pv) \
ICOM_METHOD1(DWORD, GetSize, LPVOID,pv) \
ICOM_METHOD1(INT, DidAlloc, LPVOID,pv) \
ICOM_METHOD (VOID, HeapMinimize)
#define IMalloc_IMETHODS \
IUnknown_IMETHODS \
IMalloc_METHODS
ICOM_DEFINE(IMalloc,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IMalloc_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IMalloc_AddRef(p) ICOM_CALL (AddRef,p)
#define IMalloc_Release(p) ICOM_CALL (Release,p)
/*** IMalloc methods ***/
#define IMalloc_Alloc(p,a) ICOM_CALL1(Alloc,p,a)
#define IMalloc_Realloc(p,a,b) ICOM_CALL2(Realloc,p,a,b)
#define IMalloc_Free(p,a) ICOM_CALL1(Free,p,a)
#define IMalloc_GetSize(p,a) ICOM_CALL1(GetSize,p,a)
#define IMalloc_DidAlloc(p,a) ICOM_CALL1(DidAlloc,p,a)
#define IMalloc_HeapMinimize(p) ICOM_CALL (HeapMinimize,p)
/*****************************************************************************
* IMallocSpy interface
*/
#define ICOM_INTERFACE IMallocSpy
#define IMallocSpy_METHODS \
ICOM_METHOD1 (ULONG,PreAlloc, ULONG,cbRequest) \
ICOM_METHOD1 (PVOID,PostAlloc, void*,pActual) \
ICOM_METHOD2 (PVOID,PreFree, void*,pRequest, BOOL,fSpyed) \
ICOM_VMETHOD1( PostFree, BOOL,fSpyed) \
ICOM_METHOD4 (ULONG,PreRealloc, void*,pRequest, ULONG,cbRequest, void**,ppNewRequest, BOOL,fSpyed) \
ICOM_METHOD2 (PVOID,PostRealloc, void*,pActual, BOOL,fSpyed) \
ICOM_METHOD2 (PVOID,PreGetSize, void*,pRequest, BOOL,fSpyed) \
ICOM_METHOD2 (ULONG,PostGetSize, ULONG,cbActual, BOOL,fSpyed) \
ICOM_METHOD2 (PVOID,PreDidAlloc, void*,pRequest, BOOL,fSpyed) \
ICOM_METHOD3 (int, PostDidAlloc, void*,pRequest, BOOL,fSpyed, int,fActual) \
ICOM_METHOD (int, PreHeapMinimize) \
ICOM_METHOD (int, PostHeapMinimize)
#define IMallocSpy_IMETHODS \
IUnknown_IMETHODS \
IMallocSpy_METHODS
ICOM_DEFINE(IMallocSpy,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IMallocSpy_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IMallocSpy_AddRef(p) ICOM_CALL (AddRef,p)
#define IMallocSpy_Release(p) ICOM_CALL (Release,p)
/*** IMallocSpy methods ***/
#define IMallocSpy_PreAlloc(p,a) ICOM_CALL1(PreAlloc,p,a)
#define IMallocSpy_PostAlloc(p,a) ICOM_CALL1(PostAlloc,p,a)
#define IMallocSpy_PreFree(p,a,b) ICOM_CALL2(PreFree,p,a,b)
#define IMallocSpy_PostFree(p,a) ICOM_CALL1(PostFree,p,a)
#define IMallocSpy_PreRealloc(p,a,b,c,d) ICOM_CALL4(PreRealloc,p,a,b,c,d)
#define IMallocSpy_PostRealloc(p,a,b) ICOM_CALL2(PostRealloc,p,a,b)
#define IMallocSpy_PreGetSize(p,a,b) ICOM_CALL2(PreGetSize,p,a,b)
#define IMallocSpy_PostGetSize(p,a,b) ICOM_CALL2(PostGetSize,p,a,b)
#define IMallocSpy_PreDidAlloc(p,a,b) ICOM_CALL2(PreDidAlloc,p,a,b)
#define IMallocSpy_PostDidAlloc(p,a,b,c) ICOM_CALL3(PostDidAlloc,p,a,b,c)
#define IMallocSpy_PreHeapMinimize(p) ICOM_CALL (PreHeapMinimize,p)
#define IMallocSpy_PostHeapMinimize(p) ICOM_CALL (PostHeapMinimize,p)
/*****************************************************************************
* IMultiQI interface
*/
typedef struct tagMULTI_QI
{
const IID* pIID;
IUnknown* pItf;
HRESULT hr;
} MULTI_QI;
#define ICOM_INTERFACE IMultiQI
#define IMultiQI_METHODS \
ICOM_METHOD2(HRESULT,QueryMultipleInterfaces, ULONG,cMQIs, MULTI_QI*,pMQIs)
#define IMultiQI_IMETHODS \
IUnknown_IMETHODS \
IMultiQI_METHODS
ICOM_DEFINE(IMultiQI,IUnknown)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IMultiQI_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IMultiQI_AddRef(p) ICOM_CALL (AddRef,p)
#define IMultiQI_Release(p) ICOM_CALL (Release,p)
/*** IMultiQI methods ***/
#define IMultiQI_QueryMultipleInterfaces(p,a,b) ICOM_CALL2(QueryMultipleInterfaces,p,a,b)
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */
#endif /* __WINE_WINE_OBJ_MISC_H */
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