winspool.drv/tests: Fix test failures on XP+ with long printer names.
[wine] / dlls / 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 }