# OpcClassicProxyCapabilities Enum

<span class="api-meta">since v2.32</span>

<dl class="api-definition">
<dt>Namespace</dt>
<dd><a href="../namespaces/opc.uafx.classic">Opc.UaFx.Classic</a></dd>
<dt>Assembly</dt>
<dd>Opc.UaFx.Advanced.dll</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced v2.59.0</dd>
</dl>

Specifies various capabilities in CoInitializeSecurity and IClientSecurity::SetBlanket (or its helper function CoSetProxyBlanket).

## Syntax

<div class="api-signature" data-lang="csharp">

```csharp
public enum OpcClassicProxyCapabilities
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
<Flags>
Public Enum OpcClassicProxyCapabilities
```

</div>

## Inheritance

[Object](https://learn.microsoft.com/dotnet/api/system.object) → [ValueType](https://learn.microsoft.com/dotnet/api/system.valuetype) → [Enum](https://learn.microsoft.com/dotnet/api/system.enum) → **OpcClassicProxyCapabilities**

## Fields

| Name | Value | Description |
|---|---|---|
| <a id="accesscontrol"></a>`AccessControl` | `4` | Indicates that the pSecDesc parameter to CoInitializeSecurity is a pointer to an IAccessControl interface on an access control object. When DCOM makes security checks, it calls IAccessControl::IsAccessAllowed. This flag is set only by the server. |
| <a id="applicationid"></a>`ApplicationId` | `8` | Indicates that the pSecDesc parameter to CoInitializeSecurity is a pointer to a GUID that is an AppID. The CoInitializeSecurity function looks up the AppID in the registry and reads the security settings from there. If this flag is set, all other parameters to CoInitializeSecurity are ignored and must be zero. Only the server can set this flag. For more information about this capability flag, see the Remarks section below. |
| <a id="dynamiccloaking"></a>`DynamicCloaking` | `64` | Sets dynamic cloaking. When this flag is set, DCOM uses the thread token (if present) when determining the client's identity. On each call to a proxy, the current thread token is examined to determine whether the client's identity has changed (incurring an additional performance cost) and the client is authenticated again only if necessary. Dynamic cloaking can be set by clients only. |
| <a id="mutualauthentication"></a>`MutualAuthentication` | `1` | If this flag is specified, it will be ignored. Support for mutual authentication is automatically provided by some authentication services |
| <a id="none"></a>`None` | `0` | Indicates that no capability flags are set. |
| <a id="securereferences"></a>`SecureReferences` | `2` | Authenticates distributed reference count calls to prevent malicious users from releasing objects that are still being used. If this flag is set, which can be done only in a call to CoInitializeSecurity by the client, the authentication level (in dwAuthnLevel) cannot be set to none. |
| <a id="staticcloaking"></a>`StaticCloaking` | `32` | Sets static cloaking. When this flag is set, DCOM uses the thread token (if present) when determining the client's identity. However, the client's identity is determined on the first call on each proxy (if SetBlanket is not called) and each time CoSetProxyBlanket is called on the proxy. |

## Applies to

| Package | Versions |
|---|---|
| Opc.UaFx.Advanced | v2.32–v2.59 |
