Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
061a29ee
Commit
061a29ee
authored
Mar 26, 2007
by
Rob Shearman
Committed by
Alexandre Julliard
Mar 27, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ole32: Add a stubbed out implementation of IClientSecurity to the proxy manager.
parent
7e061e4f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
79 additions
and
11 deletions
+79
-11
compobj_private.h
dlls/ole32/compobj_private.h
+1
-0
marshal.c
dlls/ole32/marshal.c
+77
-10
marshal.c
dlls/ole32/tests/marshal.c
+1
-1
No files found.
dlls/ole32/compobj_private.h
View file @
061a29ee
...
@@ -121,6 +121,7 @@ struct proxy_manager
...
@@ -121,6 +121,7 @@ struct proxy_manager
{
{
const
IMultiQIVtbl
*
lpVtbl
;
const
IMultiQIVtbl
*
lpVtbl
;
const
IMarshalVtbl
*
lpVtblMarshal
;
const
IMarshalVtbl
*
lpVtblMarshal
;
const
IClientSecurityVtbl
*
lpVtblCliSec
;
struct
apartment
*
parent
;
/* owning apartment (RO) */
struct
apartment
*
parent
;
/* owning apartment (RO) */
struct
list
entry
;
/* entry in apartment (CS parent->cs) */
struct
list
entry
;
/* entry in apartment (CS parent->cs) */
OXID
oxid
;
/* object exported ID (RO) */
OXID
oxid
;
/* object exported ID (RO) */
...
...
dlls/ole32/marshal.c
View file @
061a29ee
...
@@ -335,6 +335,13 @@ static const IMultiQIVtbl ClientIdentity_Vtbl =
...
@@ -335,6 +335,13 @@ static const IMultiQIVtbl ClientIdentity_Vtbl =
ClientIdentity_QueryMultipleInterfaces
ClientIdentity_QueryMultipleInterfaces
};
};
/* FIXME: remove these */
static
HRESULT
WINAPI
StdMarshalImpl_GetUnmarshalClass
(
LPMARSHAL
iface
,
REFIID
riid
,
void
*
pv
,
DWORD
dwDestContext
,
void
*
pvDestContext
,
DWORD
mshlflags
,
CLSID
*
pCid
);
static
HRESULT
WINAPI
StdMarshalImpl_GetMarshalSizeMax
(
LPMARSHAL
iface
,
REFIID
riid
,
void
*
pv
,
DWORD
dwDestContext
,
void
*
pvDestContext
,
DWORD
mshlflags
,
DWORD
*
pSize
);
static
HRESULT
WINAPI
StdMarshalImpl_UnmarshalInterface
(
LPMARSHAL
iface
,
IStream
*
pStm
,
REFIID
riid
,
void
**
ppv
);
static
HRESULT
WINAPI
StdMarshalImpl_ReleaseMarshalData
(
LPMARSHAL
iface
,
IStream
*
pStm
);
static
HRESULT
WINAPI
StdMarshalImpl_DisconnectObject
(
LPMARSHAL
iface
,
DWORD
dwReserved
);
static
HRESULT
WINAPI
Proxy_QueryInterface
(
IMarshal
*
iface
,
REFIID
riid
,
void
**
ppvObject
)
static
HRESULT
WINAPI
Proxy_QueryInterface
(
IMarshal
*
iface
,
REFIID
riid
,
void
**
ppvObject
)
{
{
ICOM_THIS_MULTI
(
struct
proxy_manager
,
lpVtblMarshal
,
iface
);
ICOM_THIS_MULTI
(
struct
proxy_manager
,
lpVtblMarshal
,
iface
);
...
@@ -347,13 +354,6 @@ static ULONG WINAPI Proxy_AddRef(IMarshal *iface)
...
@@ -347,13 +354,6 @@ static ULONG WINAPI Proxy_AddRef(IMarshal *iface)
return
IMultiQI_AddRef
((
IMultiQI
*
)
&
This
->
lpVtbl
);
return
IMultiQI_AddRef
((
IMultiQI
*
)
&
This
->
lpVtbl
);
}
}
/* FIXME: remove these */
static
HRESULT
WINAPI
StdMarshalImpl_GetUnmarshalClass
(
LPMARSHAL
iface
,
REFIID
riid
,
void
*
pv
,
DWORD
dwDestContext
,
void
*
pvDestContext
,
DWORD
mshlflags
,
CLSID
*
pCid
);
static
HRESULT
WINAPI
StdMarshalImpl_GetMarshalSizeMax
(
LPMARSHAL
iface
,
REFIID
riid
,
void
*
pv
,
DWORD
dwDestContext
,
void
*
pvDestContext
,
DWORD
mshlflags
,
DWORD
*
pSize
);
static
HRESULT
WINAPI
StdMarshalImpl_UnmarshalInterface
(
LPMARSHAL
iface
,
IStream
*
pStm
,
REFIID
riid
,
void
**
ppv
);
static
HRESULT
WINAPI
StdMarshalImpl_ReleaseMarshalData
(
LPMARSHAL
iface
,
IStream
*
pStm
);
static
HRESULT
WINAPI
StdMarshalImpl_DisconnectObject
(
LPMARSHAL
iface
,
DWORD
dwReserved
);
static
ULONG
WINAPI
Proxy_Release
(
IMarshal
*
iface
)
static
ULONG
WINAPI
Proxy_Release
(
IMarshal
*
iface
)
{
{
ICOM_THIS_MULTI
(
struct
proxy_manager
,
lpVtblMarshal
,
iface
);
ICOM_THIS_MULTI
(
struct
proxy_manager
,
lpVtblMarshal
,
iface
);
...
@@ -473,6 +473,72 @@ static const IMarshalVtbl ProxyMarshal_Vtbl =
...
@@ -473,6 +473,72 @@ static const IMarshalVtbl ProxyMarshal_Vtbl =
StdMarshalImpl_DisconnectObject
StdMarshalImpl_DisconnectObject
};
};
static
HRESULT
WINAPI
ProxyCliSec_QueryInterface
(
IClientSecurity
*
iface
,
REFIID
riid
,
void
**
ppvObject
)
{
ICOM_THIS_MULTI
(
struct
proxy_manager
,
lpVtblCliSec
,
iface
);
return
IMultiQI_QueryInterface
((
IMultiQI
*
)
&
This
->
lpVtbl
,
riid
,
ppvObject
);
}
static
ULONG
WINAPI
ProxyCliSec_AddRef
(
IClientSecurity
*
iface
)
{
ICOM_THIS_MULTI
(
struct
proxy_manager
,
lpVtblCliSec
,
iface
);
return
IMultiQI_AddRef
((
IMultiQI
*
)
&
This
->
lpVtbl
);
}
static
ULONG
WINAPI
ProxyCliSec_Release
(
IClientSecurity
*
iface
)
{
ICOM_THIS_MULTI
(
struct
proxy_manager
,
lpVtblCliSec
,
iface
);
return
IMultiQI_Release
((
IMultiQI
*
)
&
This
->
lpVtbl
);
}
static
HRESULT
WINAPI
ProxyCliSec_QueryBlanket
(
IClientSecurity
*
iface
,
IUnknown
*
pProxy
,
DWORD
*
pAuthnSvc
,
DWORD
*
pAuthzSvc
,
OLECHAR
**
pServerPrincName
,
DWORD
*
pAuthnLevel
,
DWORD
*
pImpLevel
,
void
**
pAuthInfo
,
DWORD
*
pCapabilities
)
{
FIXME
(
"(%p, %p, %p, %p, %p, %p, %p, %p): stub
\n
"
,
pProxy
,
pAuthnSvc
,
pAuthzSvc
,
pServerPrincName
,
pAuthnLevel
,
pImpLevel
,
pAuthInfo
,
pCapabilities
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
ProxyCliSec_SetBlanket
(
IClientSecurity
*
iface
,
IUnknown
*
pProxy
,
DWORD
AuthnSvc
,
DWORD
AuthzSvc
,
OLECHAR
*
pServerPrincName
,
DWORD
AuthnLevel
,
DWORD
ImpLevel
,
void
*
pAuthInfo
,
DWORD
Capabilities
)
{
FIXME
(
"(%p, %d, %d, %s, %d, %d, %p, 0x%x): stub
\n
"
,
pProxy
,
AuthnSvc
,
AuthzSvc
,
debugstr_w
(
pServerPrincName
),
AuthnLevel
,
ImpLevel
,
pAuthInfo
,
Capabilities
);
return
E_NOTIMPL
;
}
static
HRESULT
WINAPI
ProxyCliSec_CopyProxy
(
IClientSecurity
*
iface
,
IUnknown
*
pProxy
,
IUnknown
**
ppCopy
)
{
FIXME
(
"(%p, %p): stub
\n
"
,
pProxy
,
ppCopy
);
*
ppCopy
=
NULL
;
return
E_NOTIMPL
;
}
static
const
IClientSecurityVtbl
ProxyCliSec_Vtbl
=
{
ProxyCliSec_QueryInterface
,
ProxyCliSec_AddRef
,
ProxyCliSec_Release
,
ProxyCliSec_QueryBlanket
,
ProxyCliSec_SetBlanket
,
ProxyCliSec_CopyProxy
};
static
HRESULT
ifproxy_get_public_ref
(
struct
ifproxy
*
This
)
static
HRESULT
ifproxy_get_public_ref
(
struct
ifproxy
*
This
)
{
{
HRESULT
hr
=
S_OK
;
HRESULT
hr
=
S_OK
;
...
@@ -599,6 +665,7 @@ static HRESULT proxy_manager_construct(
...
@@ -599,6 +665,7 @@ static HRESULT proxy_manager_construct(
This
->
lpVtbl
=
&
ClientIdentity_Vtbl
;
This
->
lpVtbl
=
&
ClientIdentity_Vtbl
;
This
->
lpVtblMarshal
=
&
ProxyMarshal_Vtbl
;
This
->
lpVtblMarshal
=
&
ProxyMarshal_Vtbl
;
This
->
lpVtblCliSec
=
&
ProxyCliSec_Vtbl
;
list_init
(
&
This
->
entry
);
list_init
(
&
This
->
entry
);
list_init
(
&
This
->
interfaces
);
list_init
(
&
This
->
interfaces
);
...
@@ -723,9 +790,9 @@ static HRESULT proxy_manager_query_local_interface(struct proxy_manager * This,
...
@@ -723,9 +790,9 @@ static HRESULT proxy_manager_query_local_interface(struct proxy_manager * This,
}
}
if
(
IsEqualIID
(
riid
,
&
IID_IClientSecurity
))
if
(
IsEqualIID
(
riid
,
&
IID_IClientSecurity
))
{
{
FIXME
(
"requesting IClientSecurity, but it is unimplemented
\n
"
)
;
*
ppv
=
(
void
*
)
&
This
->
lpVtblCliSec
;
*
ppv
=
NULL
;
IUnknown_AddRef
((
IUnknown
*
)
*
ppv
)
;
return
E_NOINTERFACE
;
return
S_OK
;
}
}
hr
=
proxy_manager_find_ifproxy
(
This
,
riid
,
&
ifproxy
);
hr
=
proxy_manager_find_ifproxy
(
This
,
riid
,
&
ifproxy
);
...
...
dlls/ole32/tests/marshal.c
View file @
061a29ee
...
@@ -1405,7 +1405,7 @@ static void test_proxy_interfaces(void)
...
@@ -1405,7 +1405,7 @@ static void test_proxy_interfaces(void)
if
(
hr
==
S_OK
)
IUnknown_Release
(
pOtherUnknown
);
if
(
hr
==
S_OK
)
IUnknown_Release
(
pOtherUnknown
);
hr
=
IUnknown_QueryInterface
(
pProxy
,
&
IID_IClientSecurity
,
(
LPVOID
*
)
&
pOtherUnknown
);
hr
=
IUnknown_QueryInterface
(
pProxy
,
&
IID_IClientSecurity
,
(
LPVOID
*
)
&
pOtherUnknown
);
todo_wine
{
ok_ole_success
(
hr
,
IUnknown_QueryInterface
IID_IClientSecurity
);
}
ok_ole_success
(
hr
,
IUnknown_QueryInterface
IID_IClientSecurity
);
if
(
hr
==
S_OK
)
IUnknown_Release
(
pOtherUnknown
);
if
(
hr
==
S_OK
)
IUnknown_Release
(
pOtherUnknown
);
hr
=
IUnknown_QueryInterface
(
pProxy
,
&
IID_IMultiQI
,
(
LPVOID
*
)
&
pOtherUnknown
);
hr
=
IUnknown_QueryInterface
(
pProxy
,
&
IID_IMultiQI
,
(
LPVOID
*
)
&
pOtherUnknown
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment