IWMSOnDemandPublishingPoint::ExportXML

banner art

Previous Next

IWMSOnDemandPublishingPoint::ExportXML

The ExportXML method creates a file that contains publishing point configuration data.

Syntax

  HRESULT ExportXML(
  BSTR  bstrXMLFileName
);

Parameters

bstrXMLFileName

[in] BSTR that contains the name of the XML file.

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 newVal is an invalid argument.
ERROR_PATH_NOT_FOUND 0x00000003 The path that was indicated by bstrXMLFileName was not found.
NS_E_PUBLISHING_POINT_REMOVED 0xC00D145AL The publishing point has already been removed.

Remarks

You can use the XML file to create a new publishing point with the same settings as the existing publishing point.

This method requires the Network Service account to have write and browse access to the specified path.

Example Code

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

// Declare variables and interfaces.
IWMSServer                  *pServer;
IWMSPublishingPoints        *pPubPoints;
IWMSPublishingPoint         *pPubPoint;
IWMSOnDemandPublishingPoint *pODPubPoint;

HRESULT         hr;
VARIANT_BOOL    bVal;
CComVariant     varIndex;
CComBSTR        bstrFile;
long            lCount;
long            lBandwidth;

// 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 the IWMSPublishingPoints
// interface and retrieve the number of publishing points.
hr = pServer->get_PublishingPoints(&pPubPoints);
if (FAILED(hr)) goto EXIT;
hr = pPubPoints->get_Count(&lCount);
if (FAILED(hr)) goto EXIT;

// Retrieve each publishing point and query the
// IWMSOnDemandPublishingPoint interface.
for (long x = 0; x < lCount; x++)
{
    varIndex = x;
    hr = pPubPoints->get_Item(varIndex, &pPubPoint);
    if (FAILED(hr)) goto EXIT;

    // Retrieve the type of publishing point.
    WMS_PUBLISHING_POINT_TYPE pptType;
    hr = pPubPoint->get_Type(&pptType);
    if (FAILED(hr)) goto EXIT;

    if (pptType == WMS_PUBLISHING_POINT_TYPE_ON_DEMAND)
    {
        hr = pPubPoint->QueryInterface(IID_IWMSOnDemandPublishingPoint,
                                      (void **)&pODPubPoint);
        if (FAILED(hr)) goto EXIT;

        // Export the publishing point configuration
        // information to an XML file.
        bstrFile = "c:\\wmpub\\wmroot\\pubpoint.xml";
        hr = pODPubPoint->ExportXML(bstrFile);
        if (FAILED(hr)) goto EXIT;

        pODPubPoint->Release();
    }

    // Release temporary COM objects.
    pPubPoint->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

Previous Next