diff --git a/dlls/combase/combase.c b/dlls/combase/combase.c index 595a7569b09..5af6b3d9ed6 100644 --- a/dlls/combase/combase.c +++ b/dlls/combase/combase.c @@ -524,3 +524,26 @@ HRESULT WINAPI CoCopyProxy(IUnknown *proxy, IUnknown **proxy_copy) if (FAILED(hr)) ERR("-- failed with %#x.\n", hr); return hr; } + +/*********************************************************************** + * CoQueryClientBlanket (combase.@) + */ +HRESULT WINAPI CoQueryClientBlanket(DWORD *authn_service, DWORD *authz_service, OLECHAR **servername, + DWORD *authn_level, DWORD *imp_level, RPC_AUTHZ_HANDLE *privs, DWORD *capabilities) +{ + IServerSecurity *server_security; + HRESULT hr; + + TRACE("%p, %p, %p, %p, %p, %p, %p.\n", authn_service, authz_service, servername, authn_level, imp_level, + privs, capabilities); + + hr = CoGetCallContext(&IID_IServerSecurity, (void **)&server_security); + if (SUCCEEDED(hr)) + { + hr = IServerSecurity_QueryBlanket(server_security, authn_service, authz_service, servername, authn_level, + imp_level, privs, capabilities); + IServerSecurity_Release(server_security); + } + + return hr; +} diff --git a/dlls/combase/combase.spec b/dlls/combase/combase.spec index 669b42486fd..6d13ea6038e 100644 --- a/dlls/combase/combase.spec +++ b/dlls/combase/combase.spec @@ -134,7 +134,7 @@ @ stub CoPopServiceDomain @ stub CoPushServiceDomain @ stub CoQueryAuthenticationServices -@ stdcall CoQueryClientBlanket(ptr ptr ptr ptr ptr ptr ptr) ole32.CoQueryClientBlanket +@ stdcall CoQueryClientBlanket(ptr ptr ptr ptr ptr ptr ptr) @ stdcall CoQueryProxyBlanket(ptr ptr ptr ptr ptr ptr ptr ptr) @ stub CoReactivateObject @ stub CoRegisterActivationFilter diff --git a/dlls/ole32/compobj.c b/dlls/ole32/compobj.c index b1fedf17c88..c4daeb3b3d9 100644 --- a/dlls/ole32/compobj.c +++ b/dlls/ole32/compobj.c @@ -4250,56 +4250,6 @@ HRESULT WINAPI CoSwitchCallContext(IUnknown *pObject, IUnknown **ppOldObject) return S_OK; } -/*********************************************************************** - * CoQueryClientBlanket [OLE32.@] - * - * Retrieves the authentication information about the client of the currently - * executing server call in the current thread. - * - * PARAMS - * pAuthnSvc [O] Optional. The type of authentication service. - * pAuthzSvc [O] Optional. The type of authorization service. - * pServerPrincName [O] Optional. The server prinicple name. - * pAuthnLevel [O] Optional. The authentication level. - * pImpLevel [O] Optional. The impersonation level. - * pPrivs [O] Optional. Information about the privileges of the client. - * pCapabilities [IO] Optional. Flags affecting the security behaviour. - * - * RETURNS - * Success: S_OK. - * Failure: HRESULT code. - * - * SEE ALSO - * CoImpersonateClient, CoRevertToSelf, CoGetCallContext. - */ -HRESULT WINAPI CoQueryClientBlanket( - DWORD *pAuthnSvc, - DWORD *pAuthzSvc, - OLECHAR **pServerPrincName, - DWORD *pAuthnLevel, - DWORD *pImpLevel, - RPC_AUTHZ_HANDLE *pPrivs, - DWORD *pCapabilities) -{ - IServerSecurity *pSrvSec; - HRESULT hr; - - TRACE("(%p, %p, %p, %p, %p, %p, %p)\n", - pAuthnSvc, pAuthzSvc, pServerPrincName, pAuthnLevel, pImpLevel, - pPrivs, pCapabilities); - - hr = CoGetCallContext(&IID_IServerSecurity, (void **)&pSrvSec); - if (SUCCEEDED(hr)) - { - hr = IServerSecurity_QueryBlanket( - pSrvSec, pAuthnSvc, pAuthzSvc, pServerPrincName, pAuthnLevel, - pImpLevel, pPrivs, pCapabilities); - IServerSecurity_Release(pSrvSec); - } - - return hr; -} - /*********************************************************************** * CoImpersonateClient [OLE32.@] * diff --git a/dlls/ole32/ole32.spec b/dlls/ole32/ole32.spec index c64392d5238..e08305810fd 100644 --- a/dlls/ole32/ole32.spec +++ b/dlls/ole32/ole32.spec @@ -61,7 +61,7 @@ @ stdcall CoMarshalInterThreadInterfaceInStream(ptr ptr ptr) @ stdcall CoMarshalInterface(ptr ptr ptr long ptr long) @ stub CoQueryAuthenticationServices -@ stdcall CoQueryClientBlanket(ptr ptr ptr ptr ptr ptr ptr) +@ stdcall CoQueryClientBlanket(ptr ptr ptr ptr ptr ptr ptr) combase.CoQueryClientBlanket @ stdcall CoQueryProxyBlanket(ptr ptr ptr ptr ptr ptr ptr ptr) combase.CoQueryProxyBlanket @ stub CoQueryReleaseObject @ stdcall CoRegisterChannelHook(ptr ptr)