[ACTXPRXY]
[reactos.git] / reactos / dll / win32 / actxprxy / usrmarshal.c
1 /*
2 * Miscellaneous Marshaling Routines
3 *
4 * Copyright 2006 Robert Shearman (for CodeWeavers)
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21 #include <stdarg.h>
22 #include <string.h>
23
24 #define COBJMACROS
25 #define NONAMELESSUNION
26 #define NONAMELESSSTRUCT
27
28 #include "windef.h"
29 #include "winbase.h"
30 #include "wingdi.h"
31 #include "winuser.h"
32 #include "winerror.h"
33 #include "objbase.h"
34 #include "servprov.h"
35 #include "comcat.h"
36 #include "docobj.h"
37
38 #include "wine/debug.h"
39
40 WINE_DEFAULT_DEBUG_CHANNEL(actxprxy);
41
42 HRESULT CALLBACK IServiceProvider_QueryService_Proxy(
43 IServiceProvider* This,
44 REFGUID guidService,
45 REFIID riid,
46 void** ppvObject)
47 {
48 TRACE("(%p, %s, %s, %p)\n", This, debugstr_guid(guidService),
49 debugstr_guid(riid), ppvObject);
50
51 return IServiceProvider_RemoteQueryService_Proxy(This, guidService, riid,
52 (IUnknown **)ppvObject);
53 }
54
55 HRESULT __RPC_STUB IServiceProvider_QueryService_Stub(
56 IServiceProvider* This,
57 REFGUID guidService,
58 REFIID riid,
59 IUnknown** ppvObject)
60 {
61 TRACE("(%p, %s, %s, %p)\n", This, debugstr_guid(guidService),
62 debugstr_guid(riid), ppvObject);
63
64 return IServiceProvider_QueryService(This, guidService, riid,
65 (void **)ppvObject);
66 }
67
68 HRESULT CALLBACK ICatInformation_EnumClassesOfCategories_Proxy(
69 ICatInformation *This,
70 ULONG cImplemented,
71 CATID rgcatidImpl[],
72 ULONG cRequired,
73 CATID rgcatidReq[],
74 IEnumCLSID** ppenumClsid )
75 {
76 TRACE("(%p)\n", This);
77 return ICatInformation_RemoteEnumClassesOfCategories_Proxy( This, cImplemented, rgcatidImpl,
78 cRequired, rgcatidReq, ppenumClsid );
79 }
80
81 HRESULT __RPC_STUB ICatInformation_EnumClassesOfCategories_Stub(
82 ICatInformation *This,
83 ULONG cImplemented,
84 CATID rgcatidImpl[],
85 ULONG cRequired,
86 CATID rgcatidReq[],
87 IEnumCLSID** ppenumClsid )
88 {
89 TRACE("(%p)\n", This);
90 return ICatInformation_EnumClassesOfCategories( This, cImplemented, rgcatidImpl,
91 cRequired, rgcatidReq, ppenumClsid );
92 }
93
94 HRESULT CALLBACK ICatInformation_IsClassOfCategories_Proxy(
95 ICatInformation *This,
96 REFCLSID rclsid,
97 ULONG cImplemented,
98 CATID rgcatidImpl[],
99 ULONG cRequired,
100 CATID rgcatidReq[] )
101 {
102 TRACE("(%p)\n", This);
103 return ICatInformation_RemoteIsClassOfCategories_Proxy( This, rclsid, cImplemented, rgcatidImpl,
104 cRequired, rgcatidReq );
105 }
106
107 HRESULT __RPC_STUB ICatInformation_IsClassOfCategories_Stub(
108 ICatInformation *This,
109 REFCLSID rclsid,
110 ULONG cImplemented,
111 CATID rgcatidImpl[],
112 ULONG cRequired,
113 CATID rgcatidReq[] )
114 {
115 TRACE("(%p)\n", This);
116 return ICatInformation_IsClassOfCategories( This, rclsid, cImplemented, rgcatidImpl,
117 cRequired, rgcatidReq );
118 }
119
120 HRESULT CALLBACK IPrint_Print_Proxy(
121 IPrint *This,
122 DWORD grfFlags,
123 DVTARGETDEVICE **pptd,
124 PAGESET **ppPageSet,
125 STGMEDIUM *pstgmOptions,
126 IContinueCallback *pcallback,
127 LONG nFirstPage,
128 LONG *pcPagesPrinted,
129 LONG *pnLastPage )
130 {
131 TRACE("(%p)\n", This);
132 return IPrint_RemotePrint_Proxy( This, grfFlags, pptd, ppPageSet, (RemSTGMEDIUM *)pstgmOptions,
133 pcallback, nFirstPage, pcPagesPrinted, pnLastPage );
134 }
135
136 HRESULT __RPC_STUB IPrint_Print_Stub(
137 IPrint *This,
138 DWORD grfFlags,
139 DVTARGETDEVICE **pptd,
140 PAGESET **ppPageSet,
141 RemSTGMEDIUM *pstgmOptions,
142 IContinueCallback *pcallback,
143 LONG nFirstPage,
144 LONG *pcPagesPrinted,
145 LONG *pnLastPage )
146 {
147 TRACE("(%p)\n", This);
148 return IPrint_Print( This, grfFlags, pptd, ppPageSet, (STGMEDIUM *)pstgmOptions,
149 pcallback, nFirstPage, pcPagesPrinted, pnLastPage );
150 }
151
152 HRESULT CALLBACK IEnumOleDocumentViews_Next_Proxy(
153 IEnumOleDocumentViews *This,
154 ULONG cViews,
155 IOleDocumentView **rgpView,
156 ULONG *pcFetched )
157 {
158 TRACE("(%p)\n", This);
159 return IEnumOleDocumentViews_RemoteNext_Proxy( This, cViews, rgpView, pcFetched );
160 }
161
162 HRESULT __RPC_STUB IEnumOleDocumentViews_Next_Stub(
163 IEnumOleDocumentViews *This,
164 ULONG cViews,
165 IOleDocumentView **rgpView,
166 ULONG *pcFetched )
167 {
168 TRACE("(%p)\n", This);
169 return IEnumOleDocumentViews_Next( This, cViews, rgpView, pcFetched );
170 }