IWMSPlugin::get_CustomInterface

The get_CustomInterface method retrieves a pointer to the administration interface for the plug-in.

HRESULT get_CustomInterface(
  IDispatch**  ppVal
);

Arguments

ppVal

[out] Pointer to a pointer to the IDispatch interface for the administration user interface. This method calls AddRef internally. To avoid memory leaks, you must call Release when you are finished using the interface.

Return Value

If the function succeeds, it returns S_OK. If it fails, it returns an HRESULT error code.

Return code

Number

Description

E_POINTER

0x80004003

pVal is a NULL pointer argument.

Remarks

When you call the get_CustomInterface method, the server will load the plug-in if it is not already loaded. Some plug-ins do not have user interfaces.

Example

#include <windows.h>
#include <atlbase.h>    // Includes CComVariant.
#include "wmsserver.h"

// Declare variables and interfaces.
IWMSServer      *pServer;
IWMSPlugins     *pPlugins;
IWMSPlugin      *pPlugin;
IDispatch       *pCustomInterface;

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
// and retrieve the total count of plug-ins.
hr = pServer->get_DataSources(&pPlugins);
if (FAILED(hr)) goto EXIT;
hr = pPlugins->get_Count(&lCount);
if (FAILED(hr)) goto EXIT;

// Retrieve information about each plug-in.
for (long x = 0; x < lCount; x++)
{
    varIndex = x;
    hr = pPlugins->get_Item(varIndex, &pPlugin);
    if (FAILED(hr)) goto EXIT;

    // Retrieve a pointer to an IDispatch interface
    // containing the plug-in custom interface, if one exists.
    hr = pPlugin->get_CustomInterface(&pCustomInterface);
    if (FAILED(hr)) goto EXIT;

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

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

Requirements

Header: wmsserver.h.

Library: WMSServerTypeLib.dll.

Platform: Windows Server 2003 family, Windows Server 2008 family.

See Also

Reference

IWMSPlugin Interface

IWMSPlugins Interface