IWMSAccessControlList::Add
Previous | Next |
IWMSAccessControlList::Add
The Add method adds a new IWMSAccessControlEntry interface to the IWMSAccessControlList collection.
Syntax
HRESULT Add( BSTR bstrTrustee, WMS_ACCESS_CONTROL wmsAccess, IWMSAccessControlEntry** pNewEntry );
Parameters
bstrTrustee
[in] BSTR containing the name of the account or logon session to which the access control entry applies. The name can identify one of the following account or session types.
Type | Description |
Domain Account | The name specifies a domain account of the form domain\user_account. |
NT Security Principal | The name identifies a NT-based security system attribute. |
Built-in group | The name identifies a built-in user group identified by the NT-based security system. It has the form BUILTIN\user_group_name. |
wmsAccess
[in] Member of a WMS_ACCESS_CONTROL enumeration type indicating the trustee access mask setting. This must be one of the following values.
Value | Description |
WMS_ACL_DENY_READ | Denies read access. |
WMS_ACL_DENY_WRITE | Denies write access. |
WMS_ACL_DENY_CREATE | Denies creation access. |
WMS_ACL_DENY_ALL | Denies read, write, and creation access. |
WMS_ACL_ALLOW_READ | Enables read access. |
WMS_ACL_ALLOW_WRITE | Enables write access. |
WMS_ACL_ALLOW_CREATE | Enables creation access. |
WMS_ACL_ALLOW_ALL | Enables read, write, and creation access. |
pNewEntry
[out] Pointer to a pointer to an IWMSAccessControlEntry interface. This method calls AddRef internally. To avoid memory leaks, you must call Release when you are finished using the interface.
Return Values
If the method succeeds, it returns S_OK. If it fails, it returns an HRESULT error code.
Return code | Number | Description |
E_INVALIDARG | 0x80070057 | The wmsAccess value is not valid, or the bstrTrustee name does not contain a backslash (\) or a period (.). |
E_POINTER | 0x80004003 | The bstrTrustee parameter is NULL, or an internal ACL helper does not exist. |
ERROR_INVALID_ACCOUNT_NAME | 1315 | The bstrTrustee parameter does not contain a properly formed account name. |
ERROR_DUP_NAME | 52 | A duplicate account name exists on the network. |
Example Code
#include <windows.h> #include <atlbase.h> // Includes CComBSTR and CComVariant. // To access system plug-in interfaces, the // entire type library must be imported as shown. #import "WMSServerTypeLib.dll" no_namespace named_guids \ raw_interfaces_only // Declare variables and interfaces. IWMSServer *pServer; IWMSPlugins *pPlugins; IWMSPlugin *pPlugin; IDispatch *pDispatch; IWMSACLCheckAdmin *pACLCheckAdmin; IWMSAccessControlList *pAccessCtrlList; IWMSAccessControlEntry *pAccessCtrlEntry; HRESULT hr; CComVariant varIndex; CComBSTR bstrTrustee; long lCount; // Initialize the COM library and retrieve a pointer // to an IWMSServer interface. hr = CoInitialize(NULL); hr = CoCreateInstance(CLSID_WMSServer, NULL, CLSCTX_ALL, IID_IWMSServer, (void **)&pServer); if (FAILED(hr)) goto EXIT; // Retrieve a pointer to an IWMSPlugins interface // containing event handler plug-ins. hr = pServer->get_EventHandlers(&pPlugins); if (FAILED(hr)) goto EXIT; // Retrieve a pointer to the IWMSPlugin interface // of the plug-in to be configured. varIndex = "WMS Publishing Points ACL Authorization"; hr = pPlugins->get_Item(varIndex, &pPlugin); if (FAILED(hr)) goto EXIT; // Retrieve a pointer to the custom interface // of the plug-in. hr = pPlugin->get_CustomInterface(&pDispatch); if (FAILED(hr)) goto EXIT; // Query the specific administration interface // for the plug-in. hr = pDispatch->QueryInterface(IID_IWMSACLCheckAdmin, (void **)&pACLCheckAdmin); if (FAILED(hr)) goto EXIT; // Retrieve a pointer to the list of access control entries. hr = pACLCheckAdmin->get_AccessControlList(&pAccessCtrlList); if (FAILED(hr)) goto EXIT; // Add a new entry to the access control list. bstrTrustee = "DOMAIN\username"; hr = pAccessCtrlList->Add(bstrTrustee, WMS_ACL_ALLOW_ALL, &pAccessCtrlEntry); if (FAILED(hr)) goto EXIT; EXIT: // TODO: Release temporary COM objects and uninitialize COM.
Requirements
Library: WMSServerTypeLib.dll.
Platform: Windows Server 2003 family, Windows Server 2008 family.
See Also
Previous | Next |