IWMSDirectory::GetName

banner art

Previous Next

IWMSDirectory::GetName

The GetName method retrieves the full path of the directory object, including the URL scheme.

Syntax

  HRESULT GetName(
  LPOLESTR*  pstrValue
);

Parameters

pstrValue

[out] Specifies the full path for this directory data container object.

Return Values

If the method succeeds, the plug-in must return S_OK. To report an error, the plug-in can return any HRESULT other than S_OK. If the plug-in uses the IWMSEventLog interface to log error information directly to the Windows Event Viewer, it is recommended that it return NS_E_PLUGIN_ERROR_REPORTED. Typically, the server attempts to make plug-in error information available to the server object model, the Windows Event Viewer, and the troubleshooting list in the details pane of the Windows Media Services MMC. However, if the plug-in uses the IWMSEventLog interface to send custom error information to the Windows Event Viewer, returning NS_E_PLUGIN_ERROR_REPORTED stops the server from also logging to the event viewer. For more information about retrieving plug-in error information, see Identifying Plug-in Errors.

Example Code

The following example retrieves a path from a private data member in the user-defined class that implements the IWMSDirectory interface. You can specify this data member when you initialize the class after the server calls IWMSDataSourcePlugin::OpenDirectory.

HRESULT STDMETHODCALLTYPE
CDirectory::GetName( 
                    LPOLESTR *pstrValue
                    )
{
    HRESULT hr = S_OK;

    if( NULL == pstrValue )
    {
        return( E_INVALIDARG );
    }

    EnterCriticalSection( &m_CriticalSection );

    *pstrValue = (LPOLESTR)CoTaskMemAlloc(sizeof(OLECHAR)* (m_dwPathNameLength+1));
    if( NULL == *pstrValue )
    {
        hr = E_OUTOFMEMORY;
        goto EXIT;
    }

    if( NULL != m_pPathName )
    {
        *pstrValue[m_dwPathNameLength] = L'\0';
        wcsncpy_s( *pstrValue, m_dwPathNameLength + 1, m_pPathName, m_dwPathNameLength );
        if( L'\0' != *pstrValue[m_dwPathNameLength] )
        {
            hr = HRESULT_FROM_WIN32( ERROR_INSUFFICIENT_BUFFER );
            goto EXIT;
        }
    }
    else
    {
        ( *pstrValue )[ 0 ] = L'\0';
    }
    
EXIT:
    LeaveCriticalSection( &m_CriticalSection );

    return( hr );
}

Requirements

Header: datacontainer.h.

Library: WMSServerTypeLib.dll.

Platform: Windows Server 2003, Enterprise Edition; Windows Server 2003, Datacenter Edition; Windows Server 2008.

See Also

Previous Next