mirror of
https://github.com/reactos/wine.git
synced 2025-01-26 22:24:37 +00:00
- Implement CoSetProxyBlanket, CoQueryProxyBlanket and CoCopyProxy.
- Update todo list.
This commit is contained in:
parent
168265ebb0
commit
41d9aef7ef
@ -44,11 +44,6 @@
|
||||
* - Implement RPC thread affinity (should fix InstallShield painting
|
||||
* problems)
|
||||
*
|
||||
* - Implement IRemUnknown and marshalling for it, then use that for
|
||||
* reffing/unreffing the stub manager from a proxy instead of our
|
||||
* current hack of simply reaching into local process memory to do it,
|
||||
* which obviously doesn't work inter-process.
|
||||
*
|
||||
* - Make our custom marshalling use NDR to be wire compatible with
|
||||
* native DCOM
|
||||
*
|
||||
@ -2564,3 +2559,118 @@ ULONG WINAPI CoReleaseServerProcess(void)
|
||||
FIXME("\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* CoQueryProxyBlanket [OLE32.@]
|
||||
*
|
||||
* Retrieves the security settings being used by a proxy.
|
||||
*
|
||||
* PARAMS
|
||||
* pProxy [I] Pointer to the proxy object.
|
||||
* pAuthnSvc [O] The type of authentication service.
|
||||
* pAuthzSvc [O] The type of authorization service.
|
||||
* ppServerPrincName [O] Optional. The server prinicple name.
|
||||
* pAuthnLevel [O] The authentication level.
|
||||
* pImpLevel [O] The impersonation level.
|
||||
* ppAuthInfo [O] Information specific to the authorization/authentication service.
|
||||
* pCapabilities [O] Flags affecting the security behaviour.
|
||||
*
|
||||
* RETURNS
|
||||
* Success: S_OK.
|
||||
* Failure: HRESULT code.
|
||||
*
|
||||
* SEE ALSO
|
||||
* CoCopyProxy, CoSetProxyBlanket.
|
||||
*/
|
||||
HRESULT WINAPI CoQueryProxyBlanket(IUnknown *pProxy, DWORD *pAuthnSvc,
|
||||
DWORD *pAuthzSvc, OLECHAR **ppServerPrincName, DWORD *pAuthnLevel,
|
||||
DWORD *pImpLevel, void **ppAuthInfo, DWORD *pCapabilities)
|
||||
{
|
||||
IClientSecurity *pCliSec;
|
||||
HRESULT hr;
|
||||
|
||||
TRACE("%p\n", pProxy);
|
||||
|
||||
hr = IUnknown_QueryInterface(pProxy, &IID_IClientSecurity, (void **)&pCliSec);
|
||||
if (SUCCEEDED(hr))
|
||||
hr = IClientSecurity_QueryBlanket(pCliSec, pProxy, pAuthnSvc,
|
||||
pAuthzSvc, ppServerPrincName,
|
||||
pAuthnLevel, pImpLevel, ppAuthInfo,
|
||||
pCapabilities);
|
||||
|
||||
if (FAILED(hr)) ERR("-- failed with 0x%08lx\n", hr);
|
||||
return hr;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* CoSetProxyBlanket [OLE32.@]
|
||||
*
|
||||
* Sets the security settings for a proxy.
|
||||
*
|
||||
* PARAMS
|
||||
* pProxy [I] Pointer to the proxy object.
|
||||
* AuthnSvc [I] The type of authentication service.
|
||||
* AuthzSvc [I] The type of authorization service.
|
||||
* pServerPrincName [I] The server prinicple name.
|
||||
* AuthnLevel [I] The authentication level.
|
||||
* ImpLevel [I] The impersonation level.
|
||||
* pAuthInfo [I] Information specific to the authorization/authentication service.
|
||||
* Capabilities [I] Flags affecting the security behaviour.
|
||||
*
|
||||
* RETURNS
|
||||
* Success: S_OK.
|
||||
* Failure: HRESULT code.
|
||||
*
|
||||
* SEE ALSO
|
||||
* CoQueryProxyBlanket, CoCopyProxy.
|
||||
*/
|
||||
HRESULT WINAPI CoSetProxyBlanket(IUnknown *pProxy, DWORD AuthnSvc,
|
||||
DWORD AuthzSvc, OLECHAR *pServerPrincName, DWORD AuthnLevel,
|
||||
DWORD ImpLevel, void *pAuthInfo, DWORD Capabilities)
|
||||
{
|
||||
IClientSecurity *pCliSec;
|
||||
HRESULT hr;
|
||||
|
||||
TRACE("%p\n", pProxy);
|
||||
|
||||
hr = IUnknown_QueryInterface(pProxy, &IID_IClientSecurity, (void **)&pCliSec);
|
||||
if (SUCCEEDED(hr))
|
||||
hr = IClientSecurity_SetBlanket(pCliSec, pProxy, AuthnSvc,
|
||||
AuthzSvc, pServerPrincName,
|
||||
AuthnLevel, ImpLevel, pAuthInfo,
|
||||
Capabilities);
|
||||
|
||||
if (FAILED(hr)) ERR("-- failed with 0x%08lx\n", hr);
|
||||
return hr;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* CoCopyProxy [OLE32.@]
|
||||
*
|
||||
* Copies a proxy.
|
||||
*
|
||||
* PARAMS
|
||||
* pProxy [I] Pointer to the proxy object.
|
||||
* ppCopy [O] Copy of the proxy.
|
||||
*
|
||||
* RETURNS
|
||||
* Success: S_OK.
|
||||
* Failure: HRESULT code.
|
||||
*
|
||||
* SEE ALSO
|
||||
* CoQueryProxyBlanket, CoSetProxyBlanket.
|
||||
*/
|
||||
HRESULT WINAPI CoCopyProxy(IUnknown *pProxy, IUnknown **ppCopy)
|
||||
{
|
||||
IClientSecurity *pCliSec;
|
||||
HRESULT hr;
|
||||
|
||||
TRACE("%p\n", pProxy);
|
||||
|
||||
hr = IUnknown_QueryInterface(pProxy, &IID_IClientSecurity, (void **)&pCliSec);
|
||||
if (SUCCEEDED(hr))
|
||||
hr = IClientSecurity_CopyProxy(pCliSec, pProxy, ppCopy);
|
||||
|
||||
if (FAILED(hr)) ERR("-- failed with 0x%08lx\n", hr);
|
||||
return hr;
|
||||
}
|
||||
|
@ -7,7 +7,7 @@
|
||||
@ stdcall CLSIDFromString(wstr ptr)
|
||||
@ stdcall CoAddRefServerProcess()
|
||||
@ stdcall CoBuildVersion()
|
||||
@ stub CoCopyProxy #@ stdcall (ptr ptr) return 0,ERR_NOTIMPLEMENTED
|
||||
@ stdcall CoCopyProxy(ptr ptr)
|
||||
@ stdcall CoCreateFreeThreadedMarshaler(ptr ptr)
|
||||
@ stdcall CoCreateGuid(ptr)
|
||||
@ stdcall CoCreateInstance(ptr ptr long ptr ptr)
|
||||
@ -49,7 +49,7 @@
|
||||
@ stdcall CoMarshalInterface(ptr ptr ptr long ptr long)
|
||||
@ stub CoQueryAuthenticationServices
|
||||
@ stub CoQueryClientBlanket
|
||||
@ stub CoQueryProxyBlanket
|
||||
@ stdcall CoQueryProxyBlanket(ptr ptr ptr ptr ptr ptr ptr ptr)
|
||||
@ stub CoQueryReleaseObject
|
||||
@ stub CoRegisterChannelHook
|
||||
@ stdcall CoRegisterClassObject(ptr ptr long long ptr)
|
||||
@ -63,7 +63,7 @@
|
||||
@ stub CoRevertToSelf #@ stdcall () return 0,ERR_NOTIMPLEMENTED
|
||||
@ stdcall CoRevokeClassObject(long)
|
||||
@ stdcall CoRevokeMallocSpy()
|
||||
@ stub CoSetProxyBlanket #@ stdcall (ptr long long wstr long long ptr long) return 0,ERR_NOTIMPLEMENTED
|
||||
@ stdcall CoSetProxyBlanket(ptr long long wstr long long ptr long)
|
||||
@ stdcall CoSetState(ptr)
|
||||
@ stub CoSwitchCallContext
|
||||
@ stdcall CoSuspendClassObjects()
|
||||
|
Loading…
x
Reference in New Issue
Block a user