Share via


IWMSFileDescription::get_Type

banner art

Previous Next

IWMSFileDescription::get_Type

The get_Type method retrieves an enumeration value that indicates whether the IWMSFileDescription interface describes a directory, a media file, or a playlist file.

Syntax

  HRESULT get_Type(
  WMS_FILE_TYPE*  pVal
);

Parameters

pVal

[out] Member of a WMS_FILE_TYPE enumeration type indicating what the IWMSFileDescription interface describes. This must be one of the following values.

Value Description
WMS_FILE_DIRECTORY Indicates a directory.
WMS_FILE_MEDIA Indicates a media file, such as a file with a .wma file name extension.
WMS_FILE_PLAYLIST Indicates a playlist file, such as a file with an .asx file name extension.
WMS_FILE_REMOTE_FILE Indicates a remote file.
WMS_FILE_STREAM_FORMAT The item is a stream format file, such as a file with an .nsc. file name extension.
WMS_FILE_UNSPECIFIED The file type is unknown or unspecified.

Return Values

If the method 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

This method requires the Network System account to have read and browse access to the file being described.

Example Code

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

// Declare variables and interfaces.
IWMSServer              *pServer;
IWMSFileDescriptions    *pFileDescriptions;
IWMSFileDescription     *pFileDescription;

HRESULT         hr;
CComVariant     varIndex;
CComBSTR        bstrPath;
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 IWMSFileDescriptions interface
// and retrieve the total count of descriptions.
bstrPath = "file://c:\\wmpub\\wmroot";
hr = pServer->get_FileDescriptions(bstrPath,
                                   WMS_FILE_UNSPECIFIED,
                                   &pFileDescriptions);
if (FAILED(hr)) goto EXIT;
hr = pFileDescriptions->get_Count(&lCount);
if (FAILED(hr)) goto EXIT;

// Retrieve information associated with each description.
for (long x = 0; x < lCount; x++) {
    varIndex = x;
    hr = pFileDescriptions->get_Item(varIndex, &pFileDescription);
    if (FAILED(hr)) goto EXIT;
    WMS_FILE_TYPE ftType;
    hr = pFileDescription->get_Type(&ftType);
    if (FAILED(hr)) goto EXIT;
    if (ftType == WMS_FILE_UNSPECIFIED)
        // TODO: Handle unknown file types.
    if (ftType == WMS_FILE_DIRECTORY)
        // TODO: Handle directories.
    if (ftType == WMS_FILE_MEDIA)
        // TODO: Handle media files.
    if (ftType == WMS_FILE_PLAYLIST)
        // TODO: Handle playlist files.
    if (ftType == WMS_FILE_STREAM_FORMAT)
        // TODO: Handle stream format files.

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