diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/ole32/com/dcomidl | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to 'private/ole32/com/dcomidl')
22 files changed, 1037 insertions, 0 deletions
diff --git a/private/ole32/com/dcomidl/daytona/makefile b/private/ole32/com/dcomidl/daytona/makefile new file mode 100644 index 000000000..1d3728d41 --- /dev/null +++ b/private/ole32/com/dcomidl/daytona/makefile @@ -0,0 +1,10 @@ +############################################################################ +# +# Copyright (C) 1992, Microsoft Corporation. +# +# All rights reserved. +# +############################################################################ + +!include $(NTMAKEENV)\makefile.def + diff --git a/private/ole32/com/dcomidl/daytona/makefile.inc b/private/ole32/com/dcomidl/daytona/makefile.inc new file mode 100644 index 000000000..c41aa3fa2 --- /dev/null +++ b/private/ole32/com/dcomidl/daytona/makefile.inc @@ -0,0 +1,4 @@ +#just use a common makeidl.inc for all platforms +DEST_TREE=daytona + +!include ..\makeidl.inc diff --git a/private/ole32/com/dcomidl/daytona/sources b/private/ole32/com/dcomidl/daytona/sources new file mode 100644 index 000000000..2c3cb17ed --- /dev/null +++ b/private/ole32/com/dcomidl/daytona/sources @@ -0,0 +1,69 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + sources. + +Abstract: + + This file specifies the target component being built and the list of + sources files needed to build that component. Also specifies optional + compiler switches and libraries that are unique for the component being + built. + + +Author: + + Donna Liu (DonnaLi) 19-Dec-1993 + +!ENDIF + + +MAJORCOMP = cairole +MINORCOMP = com + +!include ..\..\..\daytona.inc + +# +# This is the name of the target built from the source files specified +# below. The name should include neither the path nor the file extension. +# + +TARGETNAME= idl + +# +# This specifies where the target is to be built. A private target of +# type LIBRARY or DYNLINK should go to obj, whereas a public target of +# type LIBRARY or DYNLINK should go to $(BASEDIR)\public\sdk\lib. +# + +TARGETPATH= obj + +# +# This specifies the type of the target, such as PROGRAM, DYNLINK, LIBRARY, +# etc. +# + +TARGETTYPE= LIBRARY + +INCLUDES= ..\..\..\common\daytona;..\..\..\ih;..; +INCLUDES= $(INCLUDES);$(BASEDIR)\public\sdk\inc; + +C_DEFINES= \ + $(C_DEFINES) \ + -I$(BASEDIR)\private\dcomidl + +SOURCES= \ + ..\empty.cxx + +UMTYPE= windows +UMAPPL= +UMTEST= +UMLIBS= + +NTTARGETFILE0=allidl + +!include ..\sources.inc +SYNCHRONIZE_BLOCK=1 diff --git a/private/ole32/com/dcomidl/dirs b/private/ole32/com/dcomidl/dirs new file mode 100644 index 000000000..80cd267ad --- /dev/null +++ b/private/ole32/com/dcomidl/dirs @@ -0,0 +1,37 @@ +!IF 0 + +Copyright (c) 1989 Microsoft Corporation + +Module Name: + + dirs. + +Abstract: + + This file specifies the subdirectories of the current directory that + contain component makefiles. + + +Author: + + Donna Liu (DonnaLi) 19-Dec-1993 + +!ENDIF + +# +# This is a list of all subdirectories that build required components. +# Each subdirectory name should appear on a line by itself. The build +# follows the order in which the subdirectories are specified. +# + +DIRS= + +# +# This is a list of all subdirectories that build optional components. +# Each subdirectory name should appear on a line by itself. The build +# follows the order in which the subdirectories are specified. +# + +OPTIONAL_DIRS= \ + daytona \ + diff --git a/private/ole32/com/dcomidl/dscm.idl b/private/ole32/com/dcomidl/dscm.idl new file mode 100644 index 000000000..6eb99a90f --- /dev/null +++ b/private/ole32/com/dcomidl/dscm.idl @@ -0,0 +1,126 @@ +//+------------------------------------------------------------------------- +// +// Microsoft Windows +// Copyright (C) Microsoft Corporation, 1995. +// +// File: +// dscm.idl +// +// Contents: +// Definition of private COM interface between ole32.dll +// and the SCM. +// +// History: +// +//-------------------------------------------------------------------------- +[ + uuid(00000136-0000-0000-C000-000000000046), + version(0.0), + pointer_default(unique) +#ifndef RAW + ,object +#endif +] + +interface IDSCM +#ifndef RAW + : IUnknown +#endif +{ +#ifndef DO_NO_IMPORTS + import "iface.idl"; + import "wtypes.idl"; + import "objidl.idl"; + import "obase.idl"; +#endif + #include "comhndl.h" + + COM_DEFINES(IDSCM) + + // + // Clsid - CLSID to activate + // pServerInfo - Location/Security info specified by client + // pwszWinstaDesktop- Client's winsta\desktop + // ClsContext - Class context requested + // ProcessSignature - Client's process reference for rpcss + // bDynamicSecurity - Client's winsta\desktop and id should not be cached + // + typedef struct _ACTIVATION_INFO + { + const GUID * Clsid; + COSERVERINFO * pServerInfo; + [string] WCHAR *pwszWinstaDesktop; + DWORD ClsContext; + DWORD ProcessSignature; + BOOL bDynamicSecurity; + } ACTIVATION_INFO; + + HRESULT SCMGetClassObject( + COM_HANDLE + [in] ACTIVATION_INFO * pActivationInfo, + [in] IID * pIID, + + // + // OR piggyback of ClientResolveOXID. + // + [in] long Apartment, + [out] OXID * pOxidServer, + [out] DUALSTRINGARRAY ** ppServerORBindings, + [out] OXID_INFO * pOxidInfo, + [out] MID * pLocalMidOfRemote, + + // ClassFactory interface data. + [out] MInterfacePointer ** ppIDClassFactory + ); + + HRESULT SCMCreateInstance( + COM_HANDLE + [in] ACTIVATION_INFO * pActivationInfo, + + [in] DWORD Interfaces, + [in,size_is(Interfaces)] IID * pIIDs, + + // + // OR piggyback of ClientResolveOXID. + // + [in] long Apartment, + [out] OXID * pOxidServer, + [out] DUALSTRINGARRAY ** ppServerORBindings, + + [out] OXID_INFO * pOxidInfo, + [out] MID * pLocalMidOfRemote, + + // Interface data and results. + [out,size_is(Interfaces)] MInterfacePointer ** ppInterfaceData, + [out,size_is(Interfaces)] HRESULT * pResults + ); + + HRESULT SCMGetPersistentInstance( + COM_HANDLE + [in] ACTIVATION_INFO * pActivationInfo, + + [in, string, unique] WCHAR * pwszPath, + [in, unique] MInterfacePointer *pIFDStorage, + [in] DWORD FileMode, + [in] BOOL FileWasOpened, + + [in] DWORD Interfaces, + [in,size_is(Interfaces)] IID * pIIDs, + + // + // OR piggyback of ClientResolveOXID. + // + [in] long Apartment, + [out] OXID * pOxidServer, + [out] DUALSTRINGARRAY ** ppServerORBindings, + + [out] OXID_INFO * pOxidInfo, + [out] MID * pLocalMidOfRemote, + + // Interface data and results. + [out] BOOL * pFoundInROT, + [out,size_is(Interfaces)] MInterfacePointer ** ppInterfaceData, + [out,size_is(Interfaces)] HRESULT * pResults + ); +} + diff --git a/private/ole32/com/dcomidl/empty.cxx b/private/ole32/com/dcomidl/empty.cxx new file mode 100644 index 000000000..3f2ff2d6c --- /dev/null +++ b/private/ole32/com/dcomidl/empty.cxx @@ -0,0 +1,5 @@ + + + + + diff --git a/private/ole32/com/dcomidl/filelist.mk b/private/ole32/com/dcomidl/filelist.mk new file mode 100644 index 000000000..99ae875f5 --- /dev/null +++ b/private/ole32/com/dcomidl/filelist.mk @@ -0,0 +1,90 @@ +############################################################################ +# +# Copyright (C) 1992, Microsoft Corporation. +# +# All rights reserved. +# +############################################################################ + + +# +# Name of target. Include an extension (.dll, .lib, .exe) +# If the target is part of the release, set RELEASE to 1. +# + + +# +# Source files. Remember to prefix each name with .\ +# + +CXXFILES = + +IDLFILES = \ + .\drot.idl \ + .\getif.idl \ + .\ichnl.idl \ + .\iface.idl \ + .\objsrv.idl \ + .\osrot.idl \ + .\scm.idl \ + +IDLUSE = SSWITCH + +CFILES = \ + .\drot_c.c \ + .\drot_x.c \ + .\drot_s.c \ + .\drot_y.c \ + .\drot_z.c \ + .\getif_c.c \ + .\getif_x.c \ + .\getif_s.c \ + .\getif_y.c \ + .\getif_z.c \ + .\ichnl_c.c \ + .\ichnl_x.c \ + .\ichnl_s.c \ + .\ichnl_y.c \ + .\ichnl_z.c \ + .\objsrv_c.c \ + .\objsrv_x.c \ + .\objsrv_s.c \ + .\objsrv_y.c \ + .\objsrv_z.c \ + .\osrot_c.c \ + .\osrot_x.c \ + .\osrot_s.c \ + .\osrot_y.c \ + .\osrot_z.c \ + .\scm_c.c \ + .\scm_x.c \ + .\scm_s.c \ + .\scm_y.c \ + .\scm_z.c \ + +RCFILES = + + +# +# Libraries and other object files to link. +# + +DEFFILE = + +LIBS = + +OBJFILES = + +# +# Precompiled headers. +# + +PXXFILE = +PFILE = + + +CINC = $(CINC) -I$(CARIOLE)\h -I$(COMMON)\types + +MTHREAD = 1 + +MULTIDEPEND = MERGED diff --git a/private/ole32/com/dcomidl/getif.idl b/private/ole32/com/dcomidl/getif.idl new file mode 100644 index 000000000..f0ee5246e --- /dev/null +++ b/private/ole32/com/dcomidl/getif.idl @@ -0,0 +1,44 @@ +//+------------------------------------------------------------------------- +// +// Microsoft Windows +// Copyright (C) Microsoft Corporation, 1992 - 1993. +// +// File: getif.idl +// +// Contents: Definition of private RPC interface to an Object Server +// to get an interface attached to a window. +// +// History: 29-Dec-93 Ricksa Created +// +//-------------------------------------------------------------------------- +[ uuid(00000135-0000-0000-C000-000000000046), + version(0.0), + pointer_default(unique), + object +] + +interface IInterfaceFromWindowProp : IUnknown +{ +#ifndef DO_NO_IMPORTS + import "iface.idl"; + import "unknwn.idl"; + import "objidl.idl"; +#endif + + HRESULT GetInterfaceFromWindowProp( + [in] DWORD hWnd, + [in] REFIID riid, + [out, iid_is(riid)] IUnknown **ppunk, + [in, string] WCHAR *pwszPropertyName ); + + HRESULT PrivDragDrop( + [in] DWORD hWnd, + [in, unique] InterfaceData *pIFDDataObject, + [in] DWORD dop, + [in] DWORD grfKeyState, + [in] POINTL pt, + [in, out, unique] DWORD *pdwEffect, + [in] DWORD dwSmId, + [in] IDataObject *pRealDataObject, + [in] DWORD hwndSource ); +} diff --git a/private/ole32/com/dcomidl/host.idl b/private/ole32/com/dcomidl/host.idl new file mode 100644 index 000000000..2b34d5227 --- /dev/null +++ b/private/ole32/com/dcomidl/host.idl @@ -0,0 +1,33 @@ +//+------------------------------------------------------------------------- +// +// Microsoft Windows +// Copyright (C) Microsoft Corporation, 1992 - 1993. +// +// File: host.idl +// +// Contents: Definition of private ORPC interface between apartments. +// Used to activate an inproc dll of one threading model from +// an apartment of a different threading model. +// +// History: 04-Mar-96 Rickhi Created +// +//-------------------------------------------------------------------------- +[ uuid(00000141-0000-0000-C000-000000000046), + pointer_default(unique), + object +] + +interface IDLLHost : IUnknown +{ +#ifndef DO_NO_IMPORTS + import "iface.idl"; + import "unknwn.idl"; + import "objidl.idl"; +#endif + + HRESULT DllGetClassObject( + [in] DWORD pfnGetClassObject, + [in] REFCLSID rclsid, + [in] REFIID riid, + [out, iid_is(riid)] IUnknown **ppunk); +} diff --git a/private/ole32/com/dcomidl/irot.acf b/private/ole32/com/dcomidl/irot.acf new file mode 100644 index 000000000..a48103248 --- /dev/null +++ b/private/ole32/com/dcomidl/irot.acf @@ -0,0 +1,24 @@ +[ implicit_handle(handle_t any_handle) ] interface IROT + +{ + IrotRegister( + [comm_status, fault_status] prpcstat); + + IrotRevoke( + [comm_status, fault_status] prpcstat); + + IrotIsRunning( + [comm_status, fault_status] prpcstat); + + IrotGetObject( + [comm_status, fault_status] prpcstat); + + IrotNoteChangeTime( + [comm_status, fault_status] prpcstat); + + IrotGetTimeOfLastChange( + [comm_status, fault_status] prpcstat); + + IrotEnumRunning( + [comm_status, fault_status] prpcstat); +} diff --git a/private/ole32/com/dcomidl/irot.idl b/private/ole32/com/dcomidl/irot.idl new file mode 100644 index 000000000..3b2a0a86d --- /dev/null +++ b/private/ole32/com/dcomidl/irot.idl @@ -0,0 +1,108 @@ +//+------------------------------------------------------------------------- +// +// Microsoft Windows +// Copyright (C) Microsoft Corporation, 1992 - 1993. +// +// File: irot.idl +// +// Contents: Definition of private RPC interface between compobj.dll +// and the SCM that implements the ROT. +// +// History: 20-Jan-95 Ricksa Created +// +//-------------------------------------------------------------------------- +[ uuid(B9E79E60-3D52-11CE-AAA1-00006901293F), + version(0.2), + pointer_default(unique) ] + +interface IROT +{ + import "iface.idl"; + +#pragma midl_echo(" ") +#pragma midl_echo("//------------------------") +#pragma midl_echo("// Invalid Key for SCM Reg") +#pragma midl_echo("//------------------------") +#pragma midl_echo("#define SCMREG_INVALID_ENTRY_LOC 0xFFFFFFFF") +#pragma midl_echo(" ") + + typedef [context_handle] void *PHPROCESS; + + typedef struct _SCMREGKEY + { + DWORD dwEntryLoc; + DWORD dwScmId; + } SCMREGKEY; + + typedef struct _MnkEqBuf + { + DWORD cdwSize; + [size_is(cdwSize)] + BYTE abEqData[]; + } MNKEQBUF; + + typedef struct _MkInterfaceList + { + DWORD dwSize; + [size_is(dwSize)] + InterfaceData *apIFDList[]; + } MkInterfaceList; + + HRESULT IrotRegister( + [in] handle_t hRpc, + [in] PHPROCESS phProcess, + [in,unique,string] WCHAR *pwszWinstaDesktop, + [in] MNKEQBUF *pmkeqbuf, + [in] InterfaceData *pifdObject, + [in] InterfaceData *pifdObjectName, + [in] FILETIME *pfiletime, + [in] DWORD dwProcessId, + [in,unique,string] WCHAR *pwszServerExe, + [out] SCMREGKEY *psrkRegister, + [out] error_status_t *prpcstat); + + HRESULT IrotRevoke( + [in] handle_t hRpc, + [in] SCMREGKEY *psrkRegister, + [in] BOOL fServerRevoke, + [out] InterfaceData **pifdObject, + [out] InterfaceData **pifdName, + [out] error_status_t *prpcstat); + + HRESULT IrotIsRunning( + [in] handle_t hRpc, + [in] PHPROCESS phProcess, + [in,unique,string] WCHAR *pwszWinstaDesktop, + [in] MNKEQBUF *pmkeqbuf); + + HRESULT IrotGetObject( + [in] handle_t hRpc, + [in] PHPROCESS phProcess, + [in,unique,string] WCHAR *pwszWinstaDesktop, + [in] DWORD dwProcessId, + [in] MNKEQBUF *pmkeqbuf, + [out] SCMREGKEY *psrkRegister, + [out] InterfaceData **pifdObject, + [out] error_status_t *prpcstat); + + HRESULT IrotNoteChangeTime( + [in] handle_t hRpc, + [in] SCMREGKEY *psrkRegister, + [in] FILETIME *pfiletime, + [out] error_status_t *prpcstat); + + HRESULT IrotGetTimeOfLastChange( + [in] handle_t hRpc, + [in] PHPROCESS phProcess, + [in,unique,string] WCHAR *pwszWinstaDesktop, + [in] MNKEQBUF *pmkeqbuf, + [out] FILETIME *pfiletime, + [out] error_status_t *prpcstat); + + HRESULT IrotEnumRunning( + [in] handle_t hRpc, + [in] PHPROCESS phProcess, + [in,unique,string] WCHAR *pwszWinstaDesktop, + [out] MkInterfaceList **ppMkIFList, + [out] error_status_t *prpcstat); +} diff --git a/private/ole32/com/dcomidl/makefil0 b/private/ole32/com/dcomidl/makefil0 new file mode 100644 index 000000000..825d0b6b1 --- /dev/null +++ b/private/ole32/com/dcomidl/makefil0 @@ -0,0 +1,14 @@ +!include $(NTMAKEENV)\makefile.plt +!include dirs + +DIR=$(DIRS) $(OPTIONAL_DIRS) + +all: +!IF "$(BUILDMSG)" != "" + @ech ; $(BUILDMSG) ; +!ENDIF + +clean: cleansrc all + +cleansrc: + for %%i in ($(DIR)) do cd %i & nmake -nologo BUILDMSG= clean -f makefile.inc & cd $(MAKEDIR) diff --git a/private/ole32/com/dcomidl/makefile b/private/ole32/com/dcomidl/makefile new file mode 100644 index 000000000..7cbed0c04 --- /dev/null +++ b/private/ole32/com/dcomidl/makefile @@ -0,0 +1,27 @@ +############################################################################ +# +# Copyright (C) 1992, Microsoft Corporation. +# +# All rights reserved. +# +############################################################################ + +!ifdef NTMAKEENV + +# We need to do the following so that build will stop reading from the +# pipe. + +all : + echo $(BUILDMSG) + +clean : all + +!else # NTMAKEENV + +!include $(CAIROLE)\com\makefile + +all: $(OBJS) + +!include $(DEPENDFILE) + +!endif # NTMAKEENV diff --git a/private/ole32/com/dcomidl/makeidl.inc b/private/ole32/com/dcomidl/makeidl.inc new file mode 100644 index 000000000..dd14ac67e --- /dev/null +++ b/private/ole32/com/dcomidl/makeidl.inc @@ -0,0 +1,117 @@ +# DEST_TREE is set by the calling makefile + +CLASS_DEST=..\..\class\$(DEST_TREE) +SCM_DEST=..\..\..\dcomss\olescm\$(DEST_TREE) + + + + +!ifndef MIDL +MIDL = midl.exe +!endif + +MIDL_FLAGS= \ + -Zp8 \ + -I$(INCLUDES) \ + -Oi2 \ + -oldnames \ + -char unsigned \ + -error allocation \ + -error stub_data \ + -ms_ext -c_ext \ + $(C_DEFINES) \ + -cpp_cmd $(TARGET_CPP) + +CSWITCH=-prefix cstub _ + +irot.h: ..\irot.idl ..\irot.acf + $(MIDL) $(MIDL_FLAGS) \ + -cstub $(CLASS_DEST)\irot_c.c \ + -sstub $(SCM_DEST)\irot_s.c \ + ..\irot.idl + +# Only generate a header. The object proxy and stub are made with +# mega.idl +getif.h: ..\getif.idl + $(MIDL) $(MIDL_FLAGS) \ + -client none \ + -server none \ + -iid $(CLASS_DEST)\getif_i.c \ + ..\getif.idl + +# Only generate a header. The object proxy and stub are made with +# mega.idl +host.h: ..\host.idl + $(MIDL) $(MIDL_FLAGS) \ + -client none \ + -server none \ + -iid $(CLASS_DEST)\host_i.c \ + ..\host.idl + +# Only generate a header. +multqi.h: ..\multqi.idl + $(MIDL) $(MIDL_FLAGS) \ + -client none \ + -server none \ + ..\multqi.idl + +# first MIDL invocation makes the object header +# the object proxy and stub are made with mega.idl +# second MIDL invocation makes the server and the '_' prefixed client +objsrv.h rwobjsrv.h: ..\objsrv.idl ..\objsrv.acf + $(MIDL) $(MIDL_FLAGS) \ + -client none \ + -server none \ + ..\objsrv.idl + + $(MIDL) $(MIDL_FLAGS) \ + -cstub $(SCM_DEST)\objsrv_c.c \ + -server none \ + -header rwobjsrv.h \ + -D RAW \ + ..\objsrv.idl + +# first MIDL invocation makes proxy for ole32.dll +# second MIDL invocation makes the server and the '_' prefixed client +scm.h: ..\scm.idl ..\scm.acf + $(MIDL) $(MIDL_FLAGS) \ + -cstub $(CLASS_DEST)\scm_c.c \ + -server none \ + ..\scm.idl + + $(MIDL) $(MIDL_FLAGS) \ + $(CSWITCH) \ + -cstub $(SCM_DEST)\scm_z.c \ + -sstub $(SCM_DEST)\scm_s.c \ + -noheader \ + ..\scm.idl + +# first MIDL invocation makes the object header +# the object proxy and stub are made with mega.idl +# second MIDL invocation makes the server +dscm.h rawdscm.h: ..\dscm.idl + $(MIDL) $(MIDL_FLAGS) \ + -client none \ + -server none \ + -iid $(CLASS_DEST)\dscm_i.c \ + ..\dscm.idl + + $(MIDL) $(MIDL_FLAGS) \ + $(CSWITCH) \ + -client none \ + -sstub $(SCM_DEST)\dscm_s.c \ + -header rawdscm.h \ + -D RAW \ + ..\dscm.idl + +allidl: irot.h getif.h host.h objsrv.h rwobjsrv.h scm.h dscm.h rawdscm.h multqi.h + +clean: + -erase multqi.h >NUL 2>NUL + -erase irot.h >NUL 2>NUL + -erase getif.h >NUL 2>NUL + -erase objsrv.h >NUL 2>NUL + -erase rwobjsrv.h >NUL 2>NUL + -erase scm.h >NUL 2>NUL + -erase rawdscm.h >NUL 2>NUL + -erase host.h >NUL 2>NUL diff --git a/private/ole32/com/dcomidl/multqi.idl b/private/ole32/com/dcomidl/multqi.idl new file mode 100644 index 000000000..f3e8cbcf3 --- /dev/null +++ b/private/ole32/com/dcomidl/multqi.idl @@ -0,0 +1,49 @@ +//+------------------------------------------------------------------------- +// +// Microsoft Windows +// Copyright (C) Microsoft Corporation, 1992 - 1993. +// +// File: multiqi.idl +// +// Contents: Definition of types for supporting multiple QI's at a time +// +// History: 07-Aug-95 GregJen Created +// +//-------------------------------------------------------------------------- + +[ local, + pointer_default(unique) +] + +interface MultiQiTypes +{ + +#ifndef DO_NO_IMPORTS + import "iface.idl"; + import "objidl.idl"; + import "obase.idl"; +#endif + +typedef struct _InterfaceInfo { + IID * pIID; + HRESULT hr; + +// the RAW form does not do Co{Un}Marshal calls +#ifdef RAW + MInterfacePointer * +#else + [iid_is(pIID)] IUnknown * +#endif + pIF; + } InterfaceInfoBlock; + + +typedef struct _rawInterfaceInfo { + IID * pIID; + HRESULT hr; + + MInterfacePointer * pIF; + + } RawInterfaceInfoBlock; +} +
\ No newline at end of file diff --git a/private/ole32/com/dcomidl/objsrv.acf b/private/ole32/com/dcomidl/objsrv.acf new file mode 100644 index 000000000..cad32f329 --- /dev/null +++ b/private/ole32/com/dcomidl/objsrv.acf @@ -0,0 +1,17 @@ +[ implicit_handle(handle_t any_handle) ] interface IObjServer +{ +#ifdef RAW + ObjectServerGetClassObject( + [comm_status, fault_status] pStatus); + + ObjectServerCreateInstance( + [comm_status, fault_status] pStatus); + + ObjectServerGetInstance( + [comm_status, fault_status] pStatus); + + ObjectServerLoadDll( + [comm_status, fault_status] pStatus); +#endif +} +
\ No newline at end of file diff --git a/private/ole32/com/dcomidl/objsrv.idl b/private/ole32/com/dcomidl/objsrv.idl new file mode 100644 index 000000000..d8f0ef86d --- /dev/null +++ b/private/ole32/com/dcomidl/objsrv.idl @@ -0,0 +1,85 @@ +//+------------------------------------------------------------------------- +// +// Microsoft Windows +// Copyright (C) Microsoft Corporation, 1992 - 1993. +// +// File: scm.idl +// +// Contents: Definition of private RPC interface between compobj.dll +// and the service controller. +// +// History: 21-Apr-93 Ricksa Created +// +//-------------------------------------------------------------------------- + +[ uuid(00000132-0000-0000-C000-000000000046), + version(0.0), + pointer_default(unique) +#ifndef RAW + , object +#endif +] + +interface IObjServer +#ifndef RAW + : IUnknown +#endif +{ +#ifndef DO_NO_IMPORTS + import "iface.idl"; + import "obase.idl"; +#endif + #include "comhndl.h" + + COM_DEFINES(IObjServer) + +#ifdef RAW + typedef error_status_t STATUSTYPE; +#else + typedef DWORD STATUSTYPE; +#endif + + HRESULT ObjectServerGetClassObject( + COM_HANDLE + [in] const GUID * rclsid, + [in] IID * pIID, + [in] BOOL fSurrogate, + [out] MInterfacePointer ** ppIFD, + [out] STATUSTYPE * pStatus + ); + + HRESULT ObjectServerCreateInstance( + COM_HANDLE + [in] const GUID * rclsid, + [in] DWORD Interfaces, + [in,size_is(Interfaces)] IID * pIIDs, + [out,size_is(Interfaces)] MInterfacePointer **ppIFD, + [out,size_is(Interfaces)] HRESULT * pResults, + [out] STATUSTYPE * pStatus + ); + + HRESULT ObjectServerGetInstance( + COM_HANDLE + [in] const GUID * rclsid, + [in] DWORD Mode, + [in, string, unique] WCHAR * pwszPath, + [in, unique] MInterfacePointer * pIFDStorage, + [in] DWORD Interfaces, + [in,size_is(Interfaces)] IID * pIIDs, + [in, unique] MInterfacePointer * pIFDROT, + [out,size_is(Interfaces)] MInterfacePointer **ppIFD, + [out,size_is(Interfaces)] HRESULT * pResults, + [out] STATUSTYPE * pStatus + ); + + HRESULT ObjectServerLoadDll( + COM_HANDLE + [in] const GUID * rclsid, + [out] STATUSTYPE * pStatus); +} + + + + + + diff --git a/private/ole32/com/dcomidl/oleprv.h b/private/ole32/com/dcomidl/oleprv.h new file mode 100644 index 000000000..1003b91bc --- /dev/null +++ b/private/ole32/com/dcomidl/oleprv.h @@ -0,0 +1,17 @@ + +// oleprv.h - header files matching those needed by oleprv.idl +// + +// internal interfaces used by DCOM +// this is private! (for now) + +// NOTE: as entries are added to oleprv.idl, corresponding entries should +// be added here + +#include "remunk.h" +#include "multqi.h" +#include "objsrv.h" +#include "dscm.h" +#include "getif.h" +#include "odeth.h" +#include "host.h" diff --git a/private/ole32/com/dcomidl/oleprv.idl b/private/ole32/com/dcomidl/oleprv.idl new file mode 100644 index 000000000..ea5e0705a --- /dev/null +++ b/private/ole32/com/dcomidl/oleprv.idl @@ -0,0 +1,19 @@ +// oleprv.idl + +// internal interfaces used by DCOM that need object-style proxies +// this file is pulled into mega.idl in the oleprx32 subtree + +// NOTE: when you add an idl to here, make sure to add it to the corresponding +// place in the file oleprv.h + + + +#include "obase.idl" +#include "iface.idl" +#include "multqi.idl" +#include "remunk.idl" +#include "objsrv.idl" +#include "dscm.idl" +#include "getif.idl" +#include "odeth.idl" +#include "host.idl" diff --git a/private/ole32/com/dcomidl/scm.acf b/private/ole32/com/dcomidl/scm.acf new file mode 100644 index 000000000..5c74b7afd --- /dev/null +++ b/private/ole32/com/dcomidl/scm.acf @@ -0,0 +1,20 @@ +[ implicit_handle(handle_t any_handle) ] interface ISCM +{ + ServerRegisterClsid( + [comm_status, fault_status] prpcstat); + + ServerRevokeClsid( + [comm_status, fault_status] prpcstat); + + GetThreadID( + [comm_status, fault_status] prpcstat); + + UpdateShrdTbls( + [comm_status, fault_status] prpcstat); + + RegisterWindowPropInterface( + [comm_status, fault_status] prpcstat); + + GetWindowPropInterface( + [comm_status, fault_status] prpcstat); +} diff --git a/private/ole32/com/dcomidl/scm.idl b/private/ole32/com/dcomidl/scm.idl new file mode 100644 index 000000000..264a13dc3 --- /dev/null +++ b/private/ole32/com/dcomidl/scm.idl @@ -0,0 +1,119 @@ +//+------------------------------------------------------------------------- +// +// Microsoft Windows +// Copyright (C) Microsoft Corporation, 1992 - 1993. +// +// File: scm.idl +// +// Contents: Definition of private RPC interface between compobj.dll +// and the service controller. +// +// History: 21-Apr-93 Ricksa Created +// 27-Dec-93 ErikGav TCHAR->WCHAR +// +//-------------------------------------------------------------------------- +[ uuid(412f241e-c12a-11ce-abff-0020af6e7a17), + version(0.2), + pointer_default(unique) +] + +interface ISCM +{ + import "iface.idl"; + import "obase.idl"; + + typedef [context_handle] void *PHPROCESS; + + typedef struct _RegOutputEnt + { + DWORD dwReg; + DWORD dwAtStorage; + } RegOutputEnt; + + typedef struct _RegOutput + { + DWORD dwSize; + [size_is(dwSize)] + RegOutputEnt regoutent[]; + } RegOutput; + + typedef struct _RegInputEntry + { + CLSID clsid; + OXID oxid; + IPID ipid; + DWORD dwFlags; + } RegInputEntry; + + typedef struct _RegInput + { + DWORD dwSize; + [size_is(dwSize)] + RegInputEntry rginent[]; + } RegInput; + + typedef struct _RevokeEntry + { + CLSID clsid; + DWORD dwReg; + } RevokeEntry; + + typedef struct _RevokeClasses + { + DWORD dwSize; + [size_is(dwSize)] + RevokeEntry revent[]; + } RevokeClasses; + + // + // Server to SCM methods. + // + HRESULT ServerRegisterClsid( + [in] handle_t hRpc, + [in] PHPROCESS phProcess, + [in, string, unique] WCHAR *pWinstaDesktop, + [in] RegInput * pregin, + [out] RegOutput ** ppregout, + [out] error_status_t * prpcstat); + + void ServerRevokeClsid( + [in] handle_t hRpc, + [in] PHPROCESS phProcess, + [in] RevokeClasses * prevcls, + [out] error_status_t * prpcstat); + + // + // Client/Server to SCM methods. + // + + void GetThreadID( + [in] handle_t hRpc, + [out] DWORD * pThreadID, + [out] error_status_t *prpcstat); + + HRESULT UpdateShrdTbls( + [in] handle_t hRpc, + [out] error_status_t *prpcstat); + + void UpdateActivationSettings( + [in] handle_t hRpc, + [out] error_status_t *prpcstat); + + // Register Drag/Drop + HRESULT RegisterWindowPropInterface( + [in] handle_t hRpc, + [in] DWORD hWnd, + [in] STDOBJREF *pStd, + [in] OXID_INFO *pOxidInfo, + [out] DWORD *pdwCookie, + [out] error_status_t *prpcstat); + + HRESULT GetWindowPropInterface( + [in] handle_t hRpc, + [in] DWORD hWnd, + [in] DWORD dwCookie, + [in] BOOL fRevoke, + [out] STDOBJREF *pStd, + [out] OXID_INFO *pOxidInfo, + [out] error_status_t *prpcstat); +} diff --git a/private/ole32/com/dcomidl/sources.inc b/private/ole32/com/dcomidl/sources.inc new file mode 100644 index 000000000..407eb4e3c --- /dev/null +++ b/private/ole32/com/dcomidl/sources.inc @@ -0,0 +1,3 @@ +# +# +# |