IWMSAccessControlEntry Interface

banner art

Previous Next

IWMSAccessControlEntry Interface

An access control list (ACL) is a list of access control entries (ACE). Each ACE created by a publishing point ACL plug-in specifies the read and write permissions for a publishing point. Clients can have permission to read the content from a publishing point, and servers can have permission to write content to a publishing point. A file system ACL plug-in specifies the read and write permissions for file system access control lists. The IWMSAccessControlEntry interface is exposed by the WMS Publishing Points ACL plug-in.

In addition to the methods inherited from IDispatch, the IWMSAccessControlEntry interface exposes the following methods.

Method Description
get_AccessMask Retrieves an enumeration value indicating the access rights to a publishing point or file system.
get_Trustee Retrieves the name of the account or logon session to which the access control entry applies.
put_AccessMask Specifies an enumeration value indicating the access rights to a publishing point or file system.

Example Code

The following example illustrates how to retrieve a pointer to an IWMSAccessControlEntry interface.

#include <windows.h>
#include <atlbase.h>    // Includes 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;
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
// and retrieve the number of entries it contains.
hr = pACLCheckAdmin->get_AccessControlList(&pAccessCtrlList);
if (FAILED(hr)) goto EXIT;
hr = pAccessCtrlList->get_Count(&lCount);
if (FAILED(hr)) goto EXIT;

for (long x = 0; x < lCount; x++)
{
    // Retrieve the next entry in the list.
    varIndex = x;
    hr = pAccessCtrlList->get_Item(varIndex, &pAccessCtrlEntry);
    if (FAILED(hr)) goto EXIT;

    // Release temporary COM objects.
    pAccessCtrlEntry->Release();
}

EXIT:
    // TODO: Release temporary COM objects and uninitialize COM.

See Also

Previous Next